2014-12-20 43 views
-2

我正在使用播放声音的用户脚本,并且只要网站上的某些内容根据我的定义发生更改,就会向我发送一些通知。跨站点XMLHttpRequest内容安全策略指令解决方法?

最近,服务器端更改,固定一个不相关的XSS漏洞阻止这两件事情为好,如跨站请求被提出:

拒绝连接到“http://myhomepage.com/mysound.mp3”,因为它违反了以下内容安全策略指令:“connect-src'self'https://websitetocheck.com”。

我该如何解决新的服务器端限制以找回我的小声音和通知程序?

任何想法或链接将不胜感激!

+0

如果您尝试过网络搜索,您会发现有关此问题的大量资源。请在发帖之前做一些调查 – charlietfl

+0

我其实是这么做的:/你能否赐教? – xqz313

回答

1

GM_xmlhttpRequest工作跨域,您可以手动设置HTTP标头。而且,您可以将声音文件作为数据URI嵌入到脚本中,或使用@resource来要求声音文件。一旦在脚本中包含文件内容,就可以将数据URI提供给<audio>进行测试。

0

解Firefox用户:

如果您使用的是Firefox,有一个非常有用的扩展,可以让你修改每一个请求头和使用JavaScript的Firefox每响应头。它可以用于很多事情,但在这里我会告诉你如何绕过“内容安全策略”。

也有这个扩展的(JSON)版本,但请务必使用(JS)版本,来自我刚刚提供的链接。

安装扩展和重新启动 Firefox。现在我们需要配置吧。我会给你这里所有的步骤:

(它可能看上去长且复杂,但实际上,这是非常简单的我只是给所有可能的细节,让大家都能能够配置的选项。)

  • 打开Firefox的扩展管理器。
  • 点击选项按钮
  • 确保两个 “HTTP请求” 和 “HTTP响应” 是启用
  • 同时确保“观看间隔”至少设置为“1000”(它将查找每1秒对脚本文件所做的更改。编辑好脚本后,可以将其设置回“0”以节省一些CPU)
  • 对于两个脚本的位置,而不是使用查找按钮,可以使用{ProfD}变量它指向您的Firefox配置文件目录。如果您使用的是可更改位置的便携式Firefox,则此功能尤其有用。请注意,如果您将这些框留空,则默认情况下不起作用。
  • 你的两个 “位置” 框应该是这样的: “{ProfD} \ MOZ重写\ requests.js” 和 “{ProfD} \ MOZ重写\ responses.js
  • 的文件夹和脚本文件不会自动创建,因此您需要在名为“moz-rewrite”的“Firefox的配置文件目录”中创建一个新文件夹,然后创建脚本文件。
  • 实施例:
    • “C:\用户\ YOURNAME \应用程序数据\漫游\ Mozilla的\火狐\概况\ qwertyui.default \ MOZ-重写\ requests.js”
    • “C:\用户\ YOURNAME \应用程序数据\漫游\ Mozilla的\火狐\ Profiles文件\ qwertyui.default \ MOZ重写\ responses.js”

现在,配置完成后,所有你需要做的就是打开“respond.js”机智h记事本,将以下脚本复制并粘贴到这个文件中,保存它,你应该能够绕过这个“XMLHttpRequest内容安全策略”。

// responses.js 
// 
[ 
    { 
    "url" : new RegExp('^https?://myhomepage\.com/mysound\.mp3', 'i'), 
    "headers" : { 
     "Content-Security-Policy" : null, 
     "Access-Control-Allow-Origin" : "*" 
     } 
    } 
] 
// End of script 

请注意,对于上面的脚本,您将需要修改Mp3文件的网址以获得真实的网址。如果你想绕过“内容安全策略”的“myhomepage.com”任何MP3文件,或者如果你有对以前的脚本问题,您可以改用此脚本:

// responses.js 
// 
[ 
    { 
    "url" : new RegExp('^https?://myhomepage\.com/.*\.mp3', 'i'), 
    "headers" : { 
     "Content-Security-Policy" : null, 
     "Access-Control-Allow-Origin" : "*" 
     } 
    } 
] 
// End of script 

这里是一个链接到这个扩展的一些非常有趣的小脚本。例如,有一个小的“广告拦截器”脚本,另一个脚本用于将搜索引擎查询从雅虎重定向到Google。链接:https://github.com/warren-bank/moz-rewrite/tree/js/data/recipe-book

如果你知道如何写Javascript代码,你真的应该看看这个。有关更多信息或阅读有关“重写HTTP头(JS)”的文档。链接:https://github.com/warren-bank/moz-rewrite

+0

也许你不想炸掉所有以.mp3结尾的安全。更好地使用'/^https https::\/\/myhomepage \ .com \ /.* \。mp3/i'这样的东西。 – m02ph3u5

+0

谢谢,您可能是对的,所以我进行了更正。我添加了第二个代码,主要面向不知道如何使用正则表达式的人。我只是在想,跨站脚本攻击(XSS)攻击对于Mp3(媒体)文件并不是真正的问题,但仅适用于以下文件:Html,Javascript等......我不了解有关XSS漏洞的每个细节。你确定攻击者可以利用这个代码,即使它只是用于mp3文件吗?以'.mp3'结尾的 –

+0

并不意味着它实际上是'.mp3';)可能是任何东西 – m02ph3u5