javascript - 使用 Iframe 的跨站点脚本

标签 javascript iframe xss

我正在试验跨站点脚本。我有一个网站,允许用户插入评论并在网站上查看它们。该网站虽然从评论中过滤了字符串“script”,但它允许 iframe。我知道我可以嵌入一个指向我制作的网站的 iframe,并且我可以运行我想要的任何脚本。我的问题是:我的 iframe 脚本能否读取原始网站发起的 cookie?我试过 alert(document.cookie) 但它显示了一个没有任何内容的警报。原始网站总是在客户请求时设置一个 cookie。知道我错过了什么吗?

最佳答案

周围的页面都需要来自同一个域。这受到同源策略的限制,该策略规定一个框架中的脚本只能访问另一个框架中的数据,前提是它们使用相同的协议(protocol)、具有完全相同的域名并且在相同的端口上运行。可以通过将 document.domain 设置为两个框架中的顶级域来稍微放松,从而允许子域中的框架进行通信。

您可以尝试输入 ,但在较新的浏览器中可能会被阻止。

然而,限制脚本不足以阻止 XSS。还有很多其他的方法。参见 http://html5sec.orghttp://ha.ckers.org/xss.html

关于javascript - 使用 Iframe 的跨站点脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291362/

相关文章:

javascript - Backbone.js - 更新模型的特定属性不想触发 "change"事件

javascript - 如何在Django Form中使用Jquery脚本的值?

android - 防止自动下载 iframe 中嵌入的 PDF 文件(在手机浏览器中)

php - 防止将 HTML 数据发布到表单文本框中

javascript - 为什么javascript是: URIs allowed in the src attribute of <img> tags?

ruby-on-rails - Ruby on Rails : What are Erubis' disadvantages and why isn't it packaged with Rails by default? 如何设置?

javascript - 在 <tr> 标签中调用 JavaScript 函数

Javascript - Firefox 行为通过鼠标点击模糊。漏洞?

javascript - iframe.src 属性中的 "javascript:"、 "#"和 "javascript:false"有什么区别

javascript - 如何使用 javascript 和 ActiveX 打开、修改和保存文件?