网站编程漏洞清单

17

观察 Stack Overflow 上线对我来说是一次很有教育意义的经历。我想列出一个清单,包括针对网站使用的各种漏洞和攻击方式,以及可以用来防御它们的编程技巧。


有人能修正标题中的拼写错误吗? - mattruma
9个回答

12

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

  1. OWASP前十大漏洞(pdf)
  2. 更详尽的列表请参见:漏洞列表

前十大漏洞如下:

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

6

2

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

  • SQL - 转义字符串(例如mysql_real_escape_string
  • XSS
  • 从输入字段中打印的HTML(通常是XSS的一个很好的迹象)
  • 任何不是该字段创建的特定目的的东西

搜索无限循环(唯一间接的事情(如果很多人意外发现它),可能会使服务器崩溃)。


2

一些防范技术:

XSS

  • 如果您从用户那里获取任何参数/输入,并且计划将其输出,无论是在日志还是网页中,请对其进行清洗(去除/转义任何类似于HTML、引号、JavaScript的内容……)。即使是在页面内打印当前URI,也要进行清洗!例如,即使打印PHP_SELF也不安全。 进行清洗! 反射型XSS主要来自未经过滤的页面参数。

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

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

XSRF

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

SQL注入

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

1

SQL注入


1

XSS(跨站脚本攻击)


1
易于监管和修复:来自客户端的数据清理。检查诸如“;”之类的内容可以帮助防止恶意代码注入到您的应用程序中。

1

你好,

一个很好的安全静态分析工具是FlawFinder,由David Wheeler编写。它可以很好地查找各种安全漏洞,

然而,它并不能替代有经验的人阅读您的代码。正如David在他的网页上所说,“一个傻瓜使用工具仍然是个傻瓜!”

希望对你有帮助。

祝好, Rob


1

您可以从Security Compass获取好的Firefox插件,以测试多个漏洞和漏洞,如XSS和SQL注入。很遗憾它们不适用于Firefox 3.0。我希望这些将很快更新。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接