我想允许上传可能包含将使用iframe加载的用户创建脚本的html文件。因此,很自然地需要考虑许多安全问题来保护浏览网站的人。
如果上传的文件包含发出外部资源请求的脚本,我想阻止它们。
我可以想到3种可能的方法来实现这个目标:
1)(理想)如果可以在iframe上添加某种规则来阻止与我自己的任何服务器的任何数据传输。
2)在上传的HTML文件中添加一些行以限制他们自己的资源。我发现这可能适用于某些带有元标记的浏览器
http-equiv="Content-Security-Policy"
然而,这在Firefox中似乎不起作用。
3)扫描上传的文件以获取任何外部请求。这不是一个好的解决方案,因为人们可能总能找到一种方法来绕过这些过滤器。
此外,iframe的“沙盒”属性根本不会阻止外部资源。
答案 0 :(得分:1)
CSP policies可能会有所帮助。但说实话,我不确定它是否成熟并适用于所有浏览器
如果你想在你的iframe中控制脚本执行... iframe sandbox attribute(html5)很有意思,并且可以完成这项工作。