我正在使用播放声音的用户脚本,并在网站上的某些内容根据我的定义发生变化时向我发送一些通知。
最近,修复不相关的XSS漏洞的服务器端更改也阻止了这两件事,因为正在进行跨站点请求:
拒绝连接到“http://myhomepage.com/mysound.mp3”,因为它违反了以下内容安全政策指令:“connect-src'self'https://websitetocheck.com”。
我可以做些什么来解决新的服务器端限制以取回我的小声音和通知程序?
任何想法或链接都将受到高度赞赏!
答案 0 :(得分:1)
GM_xmlhttpRequest
跨域工作,您可以手动设置HTTP标头。此外,您可以将声音文件作为数据URI嵌入脚本中,或使用@resource
来声明声音文件。在脚本中包含文件内容后,请将数据URI提供给<audio>
以进行合作。
答案 1 :(得分:0)
FIREFOX用户的解决方案:
如果您使用的是Firefox,则有一个非常有用的扩展程序,可让您使用javascript修改Firefox的每个请求标头和每个响应标头。它可以用于很多事情,但在这里我将向您展示如何绕过内容安全策略&#34;。
此扩展还有一个(JSON)版本,但请确保使用我刚刚提供的链接中的(JS)版本。
安装扩展程序并重新启动 Firefox。现在我们需要配置它。我会在这里给你所有的步骤:
(它可能看起来很复杂但事实上,它非常简单。我只是提供所有可能的细节,以便每个人都能够配置选项。)
现在配置已经完成,您需要做的就是打开&#34; respons.js&#34;使用记事本,将下面的脚本复制并粘贴到此文件中,保存它并且您应该能够绕过这个&#34; XMLHttpRequest内容安全策略&#34;。
// responses.js
//
[
{
"url" : new RegExp('^https?://myhomepage\.com/mysound\.mp3', 'i'),
"headers" : {
"Content-Security-Policy" : null,
"Access-Control-Allow-Origin" : "*"
}
}
]
// End of script
请注意,使用上面的脚本,您需要修改真实脚本的Mp3文件的Web地址。如果你想绕过内容安全政策&#34;对于&#34; myhomepage.com&#34;上的任何mp3文件,或者如果您在上一个脚本中遇到问题,则可以改为使用此脚本:
// responses.js
//
[
{
"url" : new RegExp('^https?://myhomepage\.com/.*\.mp3', 'i'),
"headers" : {
"Content-Security-Policy" : null,
"Access-Control-Allow-Origin" : "*"
}
}
]
// End of script
以下是此扩展程序的一些非常有趣的小脚本的链接。例如,有一个小的广告拦截器&#34;脚本和另一个脚本用于将搜索引擎查询从Yahoo重定向到Google。链接:https://github.com/warren-bank/moz-rewrite/tree/js/data/recipe-book
如果你知道如何编写Javascript代码,你真的应该看看这个。有关更多信息或阅读有关&#34;重写HTTP标头(JS)&#34;的文档。链接:https://github.com/warren-bank/moz-rewrite