【发布时间】:2017-12-22 13:17:57
【问题描述】:
我目前正在为自己开发一个 webextension (Firefox:latest),它可以阻止/捕获函数,这些函数能够评估和执行字符串作为 javascript 代码(例如,eval、Function constructor、setTimeout)。
到目前为止,扩展程序按预期工作,除了 javascript:-URIs 被分配给 location/location.href。
例如:
location.href = "javascript:alert('Hello there')";
由于位置对象是不可配置的,我不能重写它(例如,设置为 null)或为它定义一个 setter。
我知道,“Content-Security-Policy”(不允许 unsafe-inline)能够阻止这一点,但以这种方式使用 CSP 也会阻止所有其他内联代码实例(例如,脚本标签之间的代码)。
我想避免这种情况,因为它需要每个
<script>...</script> 被重新插入,例如,随机数。
这让我想到了我的问题: 有没有办法阻止/捕获这种代码执行?
【问题讨论】:
标签: javascript content-security-policy