簡體   English   中英

iOS9:.plist框架中的App Transport Security

[英]iOS9 : App Transport Security inside .plist Framework

我已經創建了一個框架,該框架使用NSURLSessionDataTask(HTTP)向服務器發送請求,但是每當我在Example應用程序中使用Framework時,它都會顯示如下警告:

由於不安全,App Transport Security阻止了明文HTTP(http://)資源加載。 可以通過應用程序的Info.plist文件配置臨時異常。

我試圖在Framework .plist內添加App Transport Security,但仍然無法正常工作。 但是,當我在Framework之外的.plist中添加App Transport Security時,它可以工作。

有什么辦法解決這個問題嗎?,謝謝

如@EmilioPelaez所述,該應用程序控制ATS是否處於活動狀態。 如果您的框架執行違反ATS規則的操作,則使用該框架的每個應用都需要添加適當的例外。

此行為有充分的理由。 以一個通用的網絡幫助程序框架為例,其中URL由調用應用程序提供給框架調用。 該框架無法知道是否需要ATS。 相反,如果框架中包含要求ATS異常的硬編碼URL,則調用應用程序的開發人員應該意識到這一點,並且不應被框架開發人員添加異常的面孔所遮蓋。 作為開發人員,我想知道我使用的是本質上不安全的框架。 如果要處理后一種情況,只需在框架文檔中放入框架正常運行所需的例外。

此外,作為ATS的最佳做法, 不要完全禁用它 ,還可以通過僅禁用特定域的ATS要求的某些部分來使用特定的例外情況,以最大程度地降低安全風險。 確保這樣做。 另外,請注意,Apple計划在2016年底要求對許多ATS例外情況進行辯護,但此刻已被推遲。 如果添加例外,則應做好准備,在某個時候將應用程序提交到App Store時,Apple會詢問您原因。 可能不應該是“因為堆棧溢出告訴我禁用所有ATS”。

該應用程序具有對ATS的控制權。 因此,您必須將其記錄在文檔中,應用程序開發人員需要向其應用程序添加ATS異常。

就是說,不要那樣做。 尤其是在創建框架時。 花些時間向服務器添加HTTPS支持/與服務器開發人員聯系以添加它。 因為Apple即將停止支持AllowArbitraryLoads /異常。 因此,包含您框架的應用程序如果不提供其為何需要這些異常的正當理由,就無法通過審核過程。 蘋果最初計划從2017年1月1日起停止提供支持,但他們將其推遲了一段未知的時間。 不過,他們有一天會做。 更好地計划未來。

PS:如果您絕對無法控制服務器,並且服務器開發人員在Mars上,並且您的框架確實需要與該服務器進行通信,則應用程序開發人員可能可以通過解釋情況來通過審查(“服務器”是Apple Review小組的正當理由),但是他們每個人都必須一遍又一遍地做,並且您必須在文檔中解釋如何做和說什么。 因此,切換到HTTPS更容易。

在此處輸入圖片說明 將NSAllowsArbitraryLoads添加為info.plist中的true鍵,以避免出現此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM