2014-12-20 44 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