我正在试验跨站点脚本。我有一个网站,允许用户插入评论并在网站上查看它们。该网站虽然从评论中过滤了字符串“script”,但它允许 iframe。我知道我可以嵌入一个指向我制作的网站的 iframe,并且我可以运行我想要的任何脚本。我的问题是:我的 iframe 脚本能否读取原始网站发起的 cookie?我试过 alert(document.cookie) 但它显示了一个没有任何内容的警报。原始网站总是在客户请求时设置一个 cookie。知道我错过了什么吗?
最佳答案
周围的页面都需要来自同一个域。这受到同源策略的限制,该策略规定一个框架中的脚本只能访问另一个框架中的数据,前提是它们使用相同的协议(protocol)、具有完全相同的域名并且在相同的端口上运行。可以通过将 document.domain 设置为两个框架中的顶级域来稍微放松,从而允许子域中的框架进行通信。
您可以尝试输入 ,但在较新的浏览器中可能会被阻止。
然而,限制脚本不足以阻止 XSS。还有很多其他的方法。参见 http://html5sec.org和 http://ha.ckers.org/xss.html
关于javascript - 使用 Iframe 的跨站点脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291362/