您好我正在制作Chrome扩展程序。我将页面作为字符串保存到数据库,然后以dataURI
方案打开它,如:
d = 'data:text/html;charset=utf-8'+encodeURI('HTML TEXT')
location.reload(d);
这个问题就是页面,比如它的名字是http://X/
,我执行上面的命令就丢失了javascript文件。
我考虑使用document.write(d)
,如果d的<head>...</head>
http://X/
附加了一个字符串。
但是这为XSS打开了一个很大的漏洞问题。此时我正在尝试在保存原始页面时考虑白名单标签......还有其他方法吗?
答案 0 :(得分:0)
我不确定http://X/
你的意思,但是如果想要复制网站来保留它的来源(即你提供的代码就像从http://X/
下载的那样运行),那么我恐怕使用标准DOM方法是不可能的(这将是一个绕过同源安全策略的安全漏洞)。
如果您想安全地运行第三方源代码,请使用:
<iframe sandbox src="data:…"></iframe>
您可以修改源并在其中插入<base href="http://X/">
以使相对URL正常工作。