网站编程漏洞清单

时间:2008-08-26 19:51:32

标签: security defensive-programming

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

  • 什么类别的vunerabilities?
  • 什么样的防御性编程技巧?
  • 等...

9 个答案:

答案 0 :(得分:12)

来自Open Web Application Security Project

  1. OWASP Top Ten个漏洞(pdf)
  2. 更详尽的详尽清单:Category:Vulnerability
  3. 前十名是:

    1. 跨站点脚本(XSS)
    2. 注入漏洞(SQL注入,脚本注入)
    3. 恶意文件执行
    4. 不安全的直接对象引用
    5. 跨站点请求伪造(XSRF)
    6. 信息泄露和错误处理不当
    7. 验证和会话管理中断
    8. 不安全的加密存储
    9. 不安全的通讯
    10. 未能限制网址访问

答案 1 :(得分:6)

答案 2 :(得分:2)

显然要测试每个字段的漏洞:

  • SQL - 转义字符串(例如mysql_real_escape_string
  • XSS
  • 从输入字段打印HTML(通常是XSS的好兆头)
  • 除了为
  • 创建字段的特定目的之外的任何其他内容

搜索无限循环(唯一间接的东西(如果很多人意外发现它)可能真的会杀死服务器。)

答案 3 :(得分:2)

一些预防技巧:

XSS

  • 如果您从用户那里获取任何参数/输入并且计划输出它,无论是在日志还是网页中,都要清理它(剥离/转义任何类似HTML,引号,javascript ......)如果你打印页面当前的URI,清理!例如,即使打印PHP_SELF也是不安全的。消毒!反射XSS主要来自未经过抽样的页面参数。

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

  • 在开发过程中使用代码扫描程序来帮助发现可能存在漏洞的代码。

XSRF

  • 永远不要使用GET请求 破坏性功能,即 删除帖子。相反,只 接受POST请求。 GET使得hackery变得更容易。
  • 检查 引荐来确认请求 来自您的网站没有 工作即可。欺骗并不难 引荐。
  • 使用随机哈希作为必须在每个请求中存在且有效的令牌,并且会在一段时间后过期。在隐藏的表单字段中打印令牌,并在发布表单时在服务器端进行检查。坏人必须提供正确的令牌以伪造请求,如果他们设法获得真正的令牌,则需要在它过期之前。

SQL注入

  • 您的ORM或db抽象类应该具有清理方法 - 始终使用它们。如果你没有使用ORM或db抽象类......你应该是。

答案 4 :(得分:1)

SQL注入

答案 5 :(得分:1)

XSS(跨站点脚本)攻击

答案 6 :(得分:1)

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

答案 7 :(得分:1)

天儿真好,

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

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

HTH。

欢呼声, 罗布

答案 8 :(得分:1)

你可以获得优秀的firefox插件来测试Security Compass中的多个漏洞和漏洞,如xss和sql注入。太糟糕了,他们不适用于Firefox 3.0。我希望很快就能更新。