1

我不知道是否可以阻止将 JavaScript 引用文件脚本注入网页,但我看到一些网站阻止您在注入的 JavaScript 引用文件脚本中运行函数,除非页面注册的是 JavaScript。例如,我能够将 10 个具有不同前缀的不同 JQuery 脚本(具有不同版本)注入到 Google Mail 中,但它们在阻止您执行某些 JQuery 命令方面做得很好。您可以做一些事情,但只能获取数据(而不是设置数据).. 例如 $jquery171('html').html() (它只是查看页面的源代码)。如何防止其他脚本像在 Google Mail 中一样在我的网页中运行?有没有人这样做过?

4

1 回答 1

2

您所说的漏洞称为跨站点脚本;简称 XSS。OWASP 的十大项目还将向您介绍作为 Web 应用程序开发人员应该了解的其他常见攻击。

为了保护您自己的代码免受 XSS 攻击,您绝不能将用户提交的数据打印到所提供的输出 HTML 页面。您必须根据您在 HTML 结构中打印用户数据的位置,以与上下文相关的方式对数据进行编码。请注意,所有不是来自您自己的程序的数据都应该被视为不受信任的——包括 HTTP 标头、URL、cookie、表单 POST 数据以及来自“外部”系统(如数据库)的数据。

请参阅XSS 预防备忘单,以更好地了解 HTML 输出的输出编码的基本原理。

无论您是否认为自己是恶意的,您对谷歌所做的一切都是非法的。您正在有效地执行 [部分] 渗透测试,以确定他们的代码对 XSS 的漏洞。虽然 GMail 可能不太介意这类事情——当然,它们必须处理恶意垃圾邮件 HTML 电子邮件——但其他一些网站的所有者肯定会这样做;在美国,人们因所做的远远少于你所描述的而被捕并受到指控。

开发您自己的网站进行测试。您将无权测试其他人的安全性。考虑看看像WebGoatGruyere这样的项目,为你提供一个合法允许攻击的环境。

于 2012-04-24T16:21:51.367 回答