代码之家  ›  专栏  ›  技术社区  ›  fire

网站脚本注入扫描[关闭]

  •  6
  • fire  · 技术社区  · 14 年前

    是否有人知道任何脚本注入扫描器能够检测到您的网站是否已被破坏(即,已注入的javascript不应该存在)?

    3 回复  |  直到 6 年前
        1
  •  2
  •   Kartoch    14 年前

    这很困难:您需要测试应用程序的每个URL,并检查回复中是否存在特定的模式(很难找到一个能够理解哪些是好的和坏的javascript的好算法,或者您需要配置这个可能很长很难处理的扫描仪)。

    有一个实时的开源解决方案叫做 mod security 在服务器端。它是一个Web应用程序防火墙:它可以检测请求和/或响应中的特定模式。它作为一个模块在Apache上工作。这主要是一种生产解决方案,在开发过程中没有检测到注入。此外,您还需要一些经验来调整它(与我们的客户进行数据交换时,哪些是好的和错误的),这可能很棘手,并且无法抵御新的攻击或更智能的攻击(例如重新编码字符)。

    顺便说一下,另一个解决方案是 Content Security Policy 但并非所有浏览器都能使用它(目前还没有人等待火狐4;-)。

        2
  •  1
  •   Mic    14 年前

    你不能。 因为一个错误的脚本在到达浏览器时总是能够重写/取消扫描仪功能。
    你的服务器无法控制你的页面发生了什么。

    有一种简单的方法可以防止页面被注入:使用 iframe 指向服务器上的其他子域或端口。
    您得到的源站策略与沙盒iframe并阻止访问父页面的资源的策略相同。

    然后您可能希望在iframes和主页之间安全地通信。
    如果你的目标是现代浏览器或手机,你可以使用 window.postMessage 发送字符串消息。
    对于旧浏览器,有一些技巧 here is a blog post with a solution

    这不会保护您免受跨站点脚本攻击,但这是另一个问题,您可以使用父页面中的秘密令牌来解决。

        3
  •  0
  •   Ben Walther    14 年前

    Stopbadware Group提供免费扫描服务。谷歌和Mozilla依靠这项服务发出“这个网站可能会损害你的电脑”的警告。

    这里提供扫描服务: http://www.stopbadware.org/home/reportsearch

    有关保护网站的详细信息如下: http://www.stopbadware.org/home/security