2015-12-02 57 views
-1

我有一個網絡應用程序,包裹在科爾多瓦Android和iOS。 由於內容安全策略元標記,我在Android設備上執行Javascript代碼時遇到問題。我已經嘗試了幾個實現,其中包括最放鬆的實現,基本上可以讓任何事情都經歷,但沒有任何工作。 所以我只是從我的index.html中刪除了CSP元標籤來解決這個問題。現在Android設備上的所有功能都可以使用,但我不知道這會帶來什麼影響。Cordova - 刪除內容安全策略 - 影響?

那麼完全刪除CSP元標籤有什麼含義呢?它如何影響我的應用程序?

P.S.我的應用程序基本上是針對工程在線和離線的數學公式(使用Javascript/HTML 5)計算器 我的默認元標記爲:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 

也試過:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' foo.com"> 

和其他一些meta標籤源自這兩者。

+0

所以......任何人都可以給我一個意見? thx –

回答

1

您希望讓CSP正常工作。它將有助於防止注入攻擊和其他問題。這裏是關於CSP具有很好的指導:

https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives

你給的例子(如果你想訪問foo.com是不正確的)。這將是一個正確的CSP:

<meta http-equiv="Content-Security-Policy" content="default-src http://*.foo.com https://*.foo.com 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 

如果未給出特定類型的src,則使用default-src。在上面的例子中,媒體文件將能夠從安全或不安全連接的任何地方加載。你的樣式表只能來自你自己的包,並且你可以使用內聯樣式。

此外,你會希望使用https,除非你有一個非常好的理由不太(事實上,蘋果開始要求它,並會拒絕應用程序,如果他們從任何地方加載不安全的內容沒有好的解釋爲什麼)。

+0

我的主要問題是我有腳本編寫內聯,不會在Android上執行。我沒有找到讓CSP接受內聯腳本的方法。在文檔中,它說「啓用內聯JS:將'不安全內聯'添加到default-src」。試過這個,仍然沒有工作。我會閱讀更多關於你的鏈接。 –

+0

我讀了你的答案和文檔,並設法使用你的通配符。謝謝。 –