应对XSS跨站攻击的基本原则是:“数据内容不能作为代码执行,或者在受控环境中执行。”在这里我们先讨论如何把数据内容放入受控环境中。
为了避免XSS跨站攻击,在大多数html编辑器的设计中,都是要将用户输入的HTML内容进行过滤。过滤代码繁琐暂且不说,关键是不能保证考虑到所有已知和未知的攻击类型。如果我们能设计一个iframe单向访问模型,就可以让用户输入的HTML内容在受控的环境中执行,也就不需要再进行过滤了。
举例来说,我们html编辑器所在的主页面为(a),嵌入一个iframe为(b)。(a)可以访问(b)的内容,而(b)却不能访问(a)的内容。这样的话,(b)中的HTML内容即使包含攻击代码,也无法发挥作用了。
在这个模型中,我们用到了document.domain属性。我们知道不同域的页面之间是不能互相访问的。document.domain可以将原来不同域的两个页面降级为相同的两个域。主页面(a)的URL为http://aa.pimshell.com/pimshell/test/a.htm,缺省域为aa.pimshell.com,嵌入的iframe(b)的URL为http://bb.pimshell.com/pimshell/test/b.htm</
用iframe单向访问模型应对XSS攻击

本文探讨了一种防御XSS攻击的方法——iframe单向访问模型,通过设置document.domain实现主页面对iframe内容的控制,确保用户输入的HTML内容在受控环境中执行,避免过滤代码的复杂性和潜在风险。该模型下,iframe内的攻击代码无法影响主页面,提高了安全性。
最低0.47元/天 解锁文章
1559

被折叠的 条评论
为什么被折叠?



