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

  • 漏洞有哪些类别?
    • 崩溃站点
    • 闯入服务器
    • 闯入其他人的登录
    • 垃圾邮件
    • 傀儡戏, 肉傀儡
    • ETC...
  • 什么样的防御性编程技术?
  • ETC...
有帮助吗?

解决方案

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

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

前十名是:

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

其他提示

我赞同 OWASP 信息,因为它是一种宝贵的资源。以下内容也可能令人感兴趣,尤其是攻击模式:

显然测试每个字段是否存在漏洞:

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

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

一些预防技巧:

跨站脚本攻击

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

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

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

XSRF

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

SQL注入

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

SQL注入

跨站脚本攻击 (跨站脚本)攻击

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

你好,

一个好的安全静态分析工具是 缺陷查找器 由大卫·惠勒撰写。它在寻找各种安全漏洞方面做得很好,

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

HTH。

欢呼,罗布

您可以获得良好的 Firefox 插件来测试多个缺陷和漏洞,例如 xss 和 sql 注入 安全指南针. 。可惜它们不能在 Firefox 3.0 上运行。我希望这些能尽快更新。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top