2017-06-13 38 views
0

一名非技术性,安全偏执的员工坚称,确保我们网站安全的有效方法是将应用程序分为三部分;前端,API和后台管理区域。通过使用不起眼的域名保护网站安全

API和管理系统都位于只是随机字符集的域名上。

应用程序持有敏感数据,但是,所有的应用程序都在同一台服务器上。

我面临的问题是,在处于此状态时调试或添加应用程序的功能使工作变得非常困难,因为它不清楚应用程序的哪一部分执行了什么操作。 (没有文档,以前的开发者已经离开公司。)

他坚持说未来的项目会遵循相同的套件,它们有自己独立的API和管理区域,我认为这对于相对简单的应用程序来说是不必要的。

第二个问题是我知道通过默默无闻的安全性并不一定是安全的,我没有看到使用复杂的域来承载部分或全部网站的重点。

所以我的问题是这样的:

1)是使用API​​这样准备进行任何安全好处?我们是否有其他方法可以确保应用程序的安全,并且数据是安全的,从而不会影响开发速度。

2)是否使用必要的隐蔽域来保持应用程序的安全?再次,有没有其他方法可以同样有效,对于未来的开发人员来说看起来并不奇怪?

3)管理系统使用用户名和密码进行保护。将管理系统安装在website.com/admin而不是randomcharacters.com上一样安全吗?

+0

雇员:我如何访问管理区域? ... HiPPO:你得到了http://fd7fsdfcxc9sffgdfg9b0kjh9rewfr9sas9vhfghg.com得到了......哦,你不允许将它同步到一个不安全的地方,它不允许加入书签; p –

回答

2
  1. 使用这样的API会带来什么安全性好处吗?我们是否有其他方法可以确保应用程序的安全,并且数据是安全的,从而不会影响开发速度。

API应该通过OAuth访问令牌(AuthN)等认证机制来保护。谁可以做该API上的内容,然后由访问令牌(AuthZ)中的声明确定。认证和授权应该用这些术语来思考。

'我是这个校长,我可以证明这一点,因为我有一个你发给我的标记,你可以验证只有你可以发布它。我有很多的信息,您可以使用到什么我被允许做”作出决定的

  • 是利用必要的一个不起眼的领域保证应用程序的安全?再次,有没有其他方法可以同样有效,对于未来的开发人员来说看起来并不奇怪?
  • 不,使用隐蔽域名不提供任何级别的安全性。它们只是通过DNS条目转换为IP地址的字母 - 要使用my-website-address.com或hdsfiuycxzuyecgfr.com,您必须将此信息传达给某人,并且此时他们同样安全!

    1. 管理系统使用用户名和密码进行保护。将管理系统安装在website.com/admin而不是randomcharacters.com上一样安全吗?

    问的问题是,谁是系统不同部分的用户,谁应该访问什么?前端应用程序是否可以在互联网上公开显示,并可供不同客户使用?管理体系是否属于同一类别,还是更多的是内部工具?确定组件的用例,并考虑您是通过应用程序逻辑(如OAuth令牌)还是基础架构限制(例如,只有特定IP地址范围/子网内的计算机才能访问管理工具)来保护它们。它通常是应用程序和基础架构安全性的组合,可提供最佳级别的保护。

    让前端应用程序和托管为不同应用程序的管理工具可能允许您在它们周围应用不同的安全边界,这可能很有用。

    然而,这是一个决定你的威胁演员是谁并据此进行设计的问题。

    1

    一个晦涩的域名只需要泄漏一次某处;只要任何攻击者获得域名的风头,它就不再是晦涩难懂的,并且不会带来任何好处。如果您有一个公共网站向“隐蔽”后端进行API调用,那么该域名已被公布。

    不,为安全起见,使用不明确名称几乎没有意义。如果您的API不安全并且允许未经授权的访问,是您的安全弱点;而不是域名可能已知的事实。