我有一个使用jQuery的bookmarklet并解析页面上的一些元素。要使用jQuery,我将动态创建一个脚本标记(使用src作为jQuery URL)并附加到head标记。这适用于许多网站。但是,很少像Facebook这样的网站,书签小部件无法将外部JS文件注入dom.I后来才知道这种行为是因为响应标题"内容安全策略&# 34; 禁止从任何其他未经授权的域中包含脚本。这是为了禁止XSS攻击。
我有一个真正的案例是将外部JS文件插入DOM。通过内容安全策略是否有任何解决方法?
答案 0 :(得分:0)
规范说(至少我认为它仍然存在)CSP不应该阻止bookmarklet,但没有浏览器实现这一点。您唯一的选择是在浏览器中禁用CSP或使用扩展名。
答案 1 :(得分:0)
自包含的小书签是另一种可能性。这是jQuery 3.3.1。
答案 2 :(得分:0)
参加
df.columns = ["Name", "Address", "School", "Class", "Subject", "Grade"]
并用jQuery源代码填充空白行,例如https://code.jquery.com/jquery-3.4.1.min.js的内容。
然后将其设置为您书签({let})的javascript:(function(){
})();
。