17

看着 SO 上线对我来说是一种教育。我想列出针对网站的各种漏洞和漏洞利用清单,以及可以使用哪些编程技术来防御它们。

  • 哪些类别的漏洞?
    • 崩溃现场
    • 闯入服务器
    • 闯入其他人的登录
    • 垃圾邮件
    • 袜子木偶,肉木偶
    • ETC...
  • 什么样的防御性编程技术?
  • ETC...
4

9 回答 9

12

来自开放 Web 应用程序安全项目

  1. OWASP 十大漏洞 (pdf )
  2. 如需更详尽的列表:类别:漏洞

前十名分别是:

  1. 跨站脚本 (XSS)
  2. 注入缺陷(SQL注入、脚本注入)
  3. 恶意文件执行
  4. 不安全的直接对象引用
  5. 跨站请求伪造 (XSRF)
  6. 信息泄露和错误处理不当
  7. 损坏的身份验证和会话管理
  8. 不安全的加密存储
  9. 不安全的通信
  10. 未能限制 URL 访问
于 2008-08-26T22:20:09.163 回答
6

我认为 OWASP 信息是一种宝贵的资源。以下内容可能也很有趣,尤其是攻击模式:

于 2008-08-26T23:12:47.120 回答
2

显然测试每个领域的漏洞:

  • SQL - 转义字符串(例如mysql_real_escape_string
  • 跨站脚本
  • 从输入字段打印 HTML(通常是 XSS 的好兆头)
  • 任何其他不是创建该字段的特定目的的东西

搜索无限循环(唯一可以真正杀死服务器的间接事物(如果很多人意外发现的话))。

于 2008-08-26T19:56:27.857 回答
2

一些预防技巧:

跨站脚本

  • 如果您从用户那里获取任何参数/输入并计划输出它,无论是在日志还是网页中,请对其进行清理(剥离/转义任何类似于 HTML、引号、javascript 的内容......)如果您打印当前的 URI一个页面本身,消毒!例如,即使打印 PHP_SELF 也是不安全的。消毒!反射型 XSS 主要来自未经处理的页面参数。

  • 如果您从用户那里获取任何输入并保存或打印,如果检测到任何危险/无效,请警告他们并让他们重新输入。IDS 有利于检测(例如 PHPIDS)。然后在存储/打印之前进行消毒。然后,当您从存储/数据库中打印某些内容时,请再次进行清理!输入 -> IDS/清理 -> 存储 -> 清理 -> 输出

  • 在开发过程中使用代码扫描器来帮助发现潜在的易受攻击的代码。

XSRF

  • 切勿将 GET 请求用于破坏性功能,即删除帖子。相反,只接受 POST 请求。GET 让黑客攻击变得更加容易。
  • 检查引荐来源网址以确保请求来自您的站点不起作用。欺骗推荐人并不难。
  • 使用随机哈希作为令牌,该令牌必须在每个请求中都存在且有效,并且会在一段时间后过期。在隐藏的表单字段中打印令牌,并在表单发布时在服务器端进行检查。坏人必须提供正确的令牌才能伪造请求,如果他们设法获得真正的令牌,则必须在它过期之前。

SQL注入

  • 你的 ORM 或 db 抽象类应该有清理方法——总是使用它们。如果您不使用 ORM 或 db 抽象类...您应该使用。
于 2008-09-16T08:35:07.677 回答
1

SQL注入

于 2008-08-26T19:52:18.693 回答
1

XSS(跨站点脚本)攻击

于 2008-08-26T19:54:12.447 回答
1

易于监督和修复:对从客户端接收到的数据进行清理。检查诸如“;”之类的东西 可以帮助防止恶意代码注入您的应用程序。

于 2008-08-26T22:29:20.297 回答
1

天,

一个很好的安全静态分析工具是David Wheeler 编写的FlawFinder 。它在寻找各种安全漏洞方面做得很好,

但是,它并不能取代让知识渊博的人阅读您的代码。正如大卫在他的网页上所说,“有工具的傻瓜仍然是傻瓜!”

HTH。

干杯,罗伯

于 2008-08-27T14:07:56.140 回答
1

您可以从Security Compass获得好的 firefox 插件来测试多个缺陷和漏洞,例如 xss 和 sql 注入。太糟糕了,它们不适用于 Firefox 3.0。我希望这些将很快更新。

于 2008-09-16T08:43:31.573 回答