我有一個firefox插件,用於通過在頁面中注入一些javascript(通過在head元素下創建一個元素,並將其innerHTML值設置爲要執行的javascript)來與github的web應用程序進行交互。當從Firefox插件的頁面注入js時,是否有可能繞過CSP?
但是,它剛剛停止工作。然後我看到了以下警告:
Timestamp: 8/21/13 5:45:42 PM
Warning: CSP WARN: Directive inline script base restriction violated
Source File: https://github.com/login
Line: 0
Source Code:
myjscode();...
Github上返回以下標題:
X-Content-Security-Policy: default-src *; script-src 'self' https://github.global.ssl.fastly.net https://jobs.github.com https://ssl.google-analytics.com https://collector.githubapp.com https://analytics.githubapp.com; style-src 'self' 'unsafe-inline' https://github.global.ssl.fastly.net; object-src 'self' https://github.global.ssl.fastly.net
我意識到火狐開始通過X-內容安全,策略頭支持CSP,但我想一些機制可以防止代碼插入到制動器。
有誰知道擴展API是否有任何特定的機制在頁面中注入javascript並繞過CSP設置?理由是 - 如果用戶安裝了插件,他/她信任它,並且應該有一種方法可以繞過CSP。
可能不是您正在尋找的答案,但您不應該首先將腳本注入網站。還有其他很多可用的選項,例如框架腳本(消息管理器),SDK頁面模式,自定義沙箱或甚至是內聯框架。或者不要在頁面上下文中首先運行代碼,而是在瀏覽器中運行代碼。 – nmaier
嗨nmair。感謝您的評論。你能更具體一些,並詳細說明這些選擇嗎?例如,在Chrome中,我使用chrome.tabs.executeScript,這很好。有什麼這樣的Firefox?謝謝 – FullOfCaffeine
我已經給了一個列表。我不能更具體地指出哪些最適合你的附加組件,而不知道你正在嘗試做什麼。 「我想在點擊上做點什麼」和「我需要加載jQuery以及一些花哨的東西」之間有區別。 – nmaier