gpt4 book ai didi

javascript - 如何防止注入(inject)的 JavaScript 文件引用代码在我的网页中运行?

转载 作者:行者123 更新时间:2023-11-30 18:28:13 25 4
gpt4 key购买 nike

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

最佳答案

您所说的漏洞称为 Cross-site Scripting ;简称 XSS。 OWASP 的 top ten project还将向您介绍作为 Web 应用程序开发人员应注意的其他常见攻击。

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

参见 XSS Prevention cheat sheet很好地理解 HTML 输出的输出编码的基本原理。

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

开发您自己的网站以进行测试。您无权测试其他人的安全性。考虑查看像 WebGoat 这样的项目和 Gruyere给你一个你可以合法攻击的环境。

关于javascript - 如何防止注入(inject)的 JavaScript 文件引用代码在我的网页中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com