【问题标题】:Security considerations - office website/portal on GAE安全考虑 - GAE 上的办公网站/门户
【发布时间】:2011-04-11 04:31:30
【问题描述】:

如果需要创建一个办公网站(作为客户/客户/员工的平台)来登录和访问共享数据,有哪些安全注意事项。

为您提供更多详细信息, 办公门户已在 django/python 中开发并通过 GAE 托管。本质上,端点带有登录名/密码以进入门户并访问数据。

我想知道: a) 我们可以做些什么来带来高水平的安全性。本质上,数据是关键的,因此只能由授权人员访问。所以想让它这样“应用程序和 - 一个人如何安全地保存他的密码一样安全。意思是,进入系统(未经授权)的唯一方法是通过密码泄漏(由人)而不是任何黑客行为大大地。” :) b) 我们可以使用 https 在 GAE (appspot.com) 上托管应用程序吗? c)除了密码之外还有更好的保护方法(我听说过 ssh 密钥/证书)。但最终用户可能并不精通技术。

【问题讨论】:

    标签: python django security google-app-engine


    【解决方案1】:

    在可用性和安全性之间总是存在选择。您实现的安全功能越多,使用起来就越困难。

    我们可以使用 https 在 GAE (appspot.com) 上托管应用吗?

    是的,但不在您自己的域中,仅在 appspot.com 上。如果您在自己的域外提供应用程序,则必须通过应用程序的appspot 域引导所有安全流量(在您自己的域上,您必须购买 SSL 证书,并且需要专用 IP 等)。如果您确实需要,可以通过您自己的域路由 SSL 流量,但由于这需要另一台服务器运行类似 stunnel 的东西,它给攻击者提供了另一个攻击目标。

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

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

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

    【讨论】:

    • App Engine For Business 在路线图上的非 appspot 域上使用 SSL,问题中的用例看起来很适合 AEFB,因为它看起来像一个 Intranet 类型的应用程序。跨度>
    猜你喜欢
    • 2012-02-23
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2020-06-29
    • 1970-01-01
    相关资源
    最近更新 更多