问题描述
我正在处理的网站接收第三方不受信任的 Javascript 作为字符串,并且需要 eval()
它。该站点具有敏感 cookie 和 localStorage,不受信任的代码无法访问。
为了解决这个问题,我为同一域中的另一个页面创建了一个子 iframe
,其中 allow-scripts
作为唯一的沙箱属性:
<iframe src="..." sandBox="allow-scripts"></iframe>
子节点 iframe
有一个预设方法列表,它可以使用 window.postMessage
根据来自父节点的预期负载执行。子进程接收包含要执行的不受信任的代码的父负载,eval()
将其发送并通过 window.postMessage
将响应作为字符串返回给父进程。
我已经测试并验证了子 iframe
无法访问父 cookie 或 localStorage。
AFAIK 这是安全的,但我想从该地区有经验的人那里知道。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)