【问题标题】:Understanding CGI and SQL security from the ground up从头开始理解 CGI 和 SQL 安全性
【发布时间】:2011-03-04 04:12:52
【问题描述】:

此问题用于学习目的。假设我正在使用 CGI 和 Python 编写一个简单的 SQL 管理控制台。在http://something.com/admin,此管理控制台应该允许我使用普通的form 修改 SQL 数据库(即创建和修改表,以及创建和修改记录)。

  1. 在最不安全的情况下,任何人都可以访问http://something.com/admin 并修改数据库。
  2. 您可以使用密码保护http://something.com/admin。但是,一旦您开始使用管理控制台,信息仍会以纯文本形式传输。
  3. 那么您使用 HTTPS 来保护传输的数据。

问题:

  1. 为了向学习者描述,您将如何逐步增加安全性到最不安全的环境以使其最安全?您将如何修改/增加我上面的三个(可能是错误的)步骤?
  2. Python 中的哪些基本工具使您的步骤成为可能?
  3. 可选:既然我了解了这个过程,那么复杂的库和框架是如何从本质上实现这种安全级别的?

【问题讨论】:

    标签: python sql security cgi


    【解决方案1】:

    安全性不是修补工作,而是一种整体方法。

    逐步增加安全性不是一个好主意。您应该从头开始将安全性集成到您的应用程序中。

    我能给你的最好建议是试着像攻击者一样思考。想一想:“如果我想做一些我不应该做的事情,我该怎么做?”

    如果您正在设计使用数据库的应用程序,我们注意不允许SQL Injections。如果您正在制作网络应用程序,您还应该了解一些most popular web vulnerabilities

    【讨论】:

    • 感谢您的建议。第二个链接真的很有用。没有太多经验,我很难像攻击者一样思考,因为我不知道我的选择,但该链接使这些选择非常明显。
    【解决方案2】:

    非特定于 Python,但任何提供对系统控制级别的管理功能都应使用 SSL 以及身份验证和授权机制(登录)至少进行保护。

    【讨论】:

      【解决方案3】:

      我首先关心的是防范CSRF 漏洞。接下来我会关注Broken Authentication and Session Management。最重要的是,为了维护安全会话,您必须在会话的整个生命周期中使用 https。如果您将密码或会话 ID 甚至是纯文本的 sql 查询泄漏到哪里,那将是一件坏事。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-22
        • 1970-01-01
        • 2020-01-14
        • 1970-01-01
        • 2019-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多