安全考虑因素 - GAE上的办公室网站/门户网站

时间:2010-09-11 20:23:06

标签: python django security google-app-engine

如果需要创建办公室网站(作为客户/客户/员工的平台)来登录和访问共享数据,那么有哪些安全考虑因素。

为您提供更多细节, 办公室门户网站是在django / python中开发的,并通过GAE进行托管。本质上,终点附带登录/密码以进入门户并访问数据。

我想知道: a)我们可以采取哪些措施来实现高水平的安全性。基本上数据是关键的,因此只需要授权人员访问。所以想要这样做“应用程序是安全的 - 如何安全地保存他的密码。意思是,进入系统(未经授权)的唯一方法是通过密码泄露(由人),而不是任何hackish办法。” :) b)我们可以使用https在GAE(appspot.com)上托管应用吗? c)有更好的方法来保护密码以外的其他方法(我听说过ssh密钥/证书)。但最终用户可能不是高科技人士。

1 个答案:

答案 0 :(得分:1)

在可用性和安全性之间总有选择。您实施的安全功能越多,使用它就越困难。

  

我们可以使用https?

在GAE(appspot.com)上托管应用

是的,但不在您自己的域上,仅在appspot.com上。如果您从自己的域提供应用程序,则必须通过应用程序的appspot域引导所有安全流量(在您自己的域中,您必须购买SSL证书,并且您需要专用IP等)。如果你真的需要,有办法在你自己的域上路由SSL流量,但由于这需要另一台运行像stunnel这样的服务器,它会为攻击者提供另一个攻击目标。

如果您的应用程序具有用户名/密码身份验证,那么如果您的代码中没有可以被利用的错误,那么应用程序就像保存密码一样安全。关于“hackish方式”:在GAE上,您不必关心服务器安全性,唯一可能的攻击目标是您的代码。

这些是保护您的应用的一些策略:

  • 良好的质量保证和代码审查,以发现关键错误; Django已经内置了针对XSRF和SQL注入等大多数琐碎攻击的内置保护,因此请查看与关键数据和身份验证相关的代码部分
  • 考虑其他身份验证方法,如客户端证书(最终用户易于使用,大多数浏览器支持本机,现代操作系统具有证书存储;在GAE上可能不是一件容易的事)
  • 每个安全环境的最薄弱点是用户,因此您应该告知用户有关处理敏感数据和密码的良好做法(顺便说一句,要求每隔几个月更换一次密码并不能提高安全性,因为它通常会导致用户记下密码,因为他们记不起来,你获得的安全性比你获得的更多)
  • 你应该有良好的入侵检测来尽快锁定攻击者,例如行为分析;示例:如果来自美国的用户从爱沙尼亚的IP登录,这是可疑的
  • 网络访问限制:您可以阻止除企业访问关键数据之外的所有IP范围,如果密码泄露,这可以最大限度地减少可能的影响
  • 提高最终用户的安全性:如果其中一个用户的计算机上有木马进行屏幕捕获或键盘记录,则所有安全性都会丢失,因为攻击者只能在查看敏感数据时观察用户;你应该在你的企业中有一个好的安全警察
  • 强制用户通过SSL访问您的网站,您不应该让用户选择他们是否更喜欢安全性而不是