gpt4 book ai didi

security - 安全实现脚本标签黑客来做 XSS?

转载 作者:行者123 更新时间:2023-12-04 06:47:16 24 4
gpt4 key购买 nike

像许多开发人员一样,我想让服务器“A”提供的 JavaScript 与服务器“B”上的 Web 服务对话,但我被当前的 same origin policy 的化身所阻碍。 .克服这个问题的最安全的方法(我能找到)是一个服务器脚本,它位于服务器“A”上并充当它和“B”之间的代理。但是如果我想在各种客户环境(RoR、PHP、Python、.NET 等)中部署这个 JavaScript 并且无法为所有这些环境编写代理脚本,我该怎么办?

使用 JSONP,some people say .好吧,Doug Crockford 指出 on his websitein interviews脚本标签 hack(由 JSONP 使用)是一种绕过同源策略的不安全方式。由“A”提供的脚本无法验证“B”是他们所说的人,并且它返回的数据不是恶意的,或者会捕获该页面上的敏感用户数据(例如信用卡号)和传给卑鄙的人。这似乎是一个合理的担忧,但是如果我只使用脚本标记 hack 本身并严格使用 JSON 进行通信呢?那安全吗?如果没有,为什么不呢?使用 HTTPS 会更安全吗?示例场景将不胜感激。

附录:需要支持 IE6。第三方浏览器扩展不是一种选择。请让我们继续解决脚本标签黑客攻击的优点和风险。

最佳答案

目前浏览器供应商在跨域 javascript 应该如何工作上存在分歧。 Flash 的 Crossdomain.xml file 是一种安全且易于使用的 optoin。 .大多数语言都有 Cross Domain Proxies为他们写的,他们是开源的。

一个更邪恶的解决方案是使用 xss 如何 Sammy Worm用来传播。 XSS 可用于使用 xmlhttprequest 来“读取”远程域。如果其他域添加了 <script src="https://YOUR_DOMAIN"></script>,则不需要 XSS .像这样的脚本标签允许你在另一个域的上下文中评估你自己的 JavaScript,这与 XSS 相同。

同样重要的是要注意,即使对同源策略有限制,您也可以让浏览器将请求传输到任何域,但您无法读取响应。这是CSRF的基础。您可以将不可见的图像标签动态写入页面,以使浏览器触发无限数量的 GET 请求。图片标签的这种使用是攻击者获取 documnet.cookie 的方式在另一个域上使用 XSS。 CSRF POST 通过构建表单然后调用 .submit() 来利用工作。在表单对象上。

要更好地理解同源策略、CSRF 和 XSS,您必须阅读 Google Browser Security Handbook .

关于security - 安全实现脚本标签黑客来做 XSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568098/

24 4 0