2016-08-05 56 views
0

我們有一個應用程序,它在Webview中顯示HTML內容。目前提供給Webview的內容來自非安全域。從iOS10開始,它應該在安全域中提供,因此在遷移之前要清除一些疑問。ATS應用程序傳輸安全:Webview內部的HTTP網址

  1. 受保護的HTML頁面(https)是否應該有安全服務器的CSS和JS鏈接?由於某些CSS和JS可能來自第三臺服務器。

  2. 如果受保護的HTML頁面(https)被加載到Webview中,並且有一些鏈接不安全(http),那麼當用戶點擊它時,這些鏈接會在Webview中加載嗎?

在此先感謝您的幫助。

+0

如果您的應用程序訪問任何非https內容,那麼您需要特定的異常(如果您知道服務器將是什麼)或一般異常(即禁用ATS)如果內容可能來自任何地方。如果你使用SFSafariViewController,那麼你不需要禁用ATS。如果你使用UIWebView或WKWebView,那麼你做http://stackoverflow.com/questions/31065204/ios-9-are-webviews-exempt-from-the-app-transport-security-exceptions-ats – Paulw11

+0

謝謝@ Paulw11爲你回覆。 SFSafariViewController可從iOS9獲得,但我們有一些仍在iOS7設備上的客戶。從iOS10開始,Apple不會允許例外(即禁用ATS),並且所有請求都必須得到保護。所以考慮到我的問題,我是否需要提供CSS,JS和HTML內容中的鏈接需要保護? – miOS

+0

首先,它不是從ios 10開始,而是從今年年底之後提交的應用程序開始。它將在提交時執行。另外,Apple不會允許例外。他們會允許您提交例外情況,但似乎他們會在您提交時詢問理由,如果您的理由不夠好,他們可能會也可能不會拒絕您的應用。 – wottle

回答

4

我做了一個快速測試,看來,所需的任何引用的資源由​​UIWebView加載到正確顯示的頁面必須由ATS遵守規則,但也跟着你在Info.plist指定任何異常的項目。如果我試圖在UIWebView中關注非https網站的鏈接,它也會給我帶來錯誤。

我認爲你最好的選擇是對iOS 9用戶有條件地使用SFSafariViewController。對於不嚴格執行ATS的iOS 7和iOS 8設備,您可以繼續使用UIWebView。這增加了一些額外的代碼,但它應該是最小的。

此外,只是對蘋果的執行應用程序傳輸安全性的變化的澄清。他們宣佈在2016年12月31日之後提交的應用需要App Transport Security。這意味着影響不是基於用戶的設備操作系統,而是基於提交的開發人員。此外,只要您有理由,Apple 仍允許添加例外。我們還不知道蘋果會允許什麼類型的理由。最後,蘋果在他們的WWDC會議上表示,應用程序仍然可以包含對ATS要求的前向保密部分的例外,而無需另行說明理由。但是,直到我們到2017年1月1日,我們不能確定這將如何工作。

編輯:看來蘋果已經增加了一個新的異常,你可以用它來允許UIWebviewWKWebview實例非ATS連接。它是NSAllowsArbitraryLoadsInWebContent。這應該做你正在尋找的東西。以下是ATS的最新摘要:preparing for ATS in 2017.

+0

感謝@wottle爲您輸入。 – miOS

相關問題