从头开始理解CGI和SQL安全性

时间:2010-06-15 19:54:48

标签: python sql security cgi

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

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

    1. 要向学员介绍,为了使其最安全,您将如何以增量方式将安全性添加到最不安全的环境中?你会如何修改/增加我上面的三个(可能是错误的)步骤?
    2. Python中的哪些基本工具可以使您的步骤成为可能?
    3. 可选:既然我了解了这个过程,那么复杂的库和框架本身如何实现这种安全级别呢?

3 个答案:

答案 0 :(得分:3)

安全不是补丁工作,它是一种整体方法。

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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