1
我正在使用一個應用程序,用戶可以在其中輸入應用程序可以連接的任意URL。目標服務器可以是http或https。我在應用程序info.plist中添加了以下值。同時支持http調用和ATS
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
由於上述配置HTTP調用和安全的服務器工作正常,即使有,我的安全服務器遇到任何安全服務器的要求,即缺少TLS1.2,向前保密等
我要確保如果我的安全服務器上缺少任何內容,iOS文檔中提到的所有要求(即TLS1.2,前向保密和我的請求)都將失敗。如果我的服務器未正確配置SSL要求(TLS1.2,正向保密),我使用以下配置並且請求失敗。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
</dict>
使用上述配置後,我無法連接http服務器。如果安全服務器配置不正確,是否有任何方法可以與http服務器連接,請求失敗。
注意:我的應用程序可以連接到用戶輸入的任何服務器。我無法使用NSExceptionDomains配置來指定服務器。
感謝您的回覆。假設有n臺服務器,我不提前知道域名。新服務器將在稍後添加。僅當我知道服務器地址時,上述方案才起作用。 – user1799469
要做到這一點,唯一的方法就是在代碼中執行ATS檢查,同時關閉iOS提供的ATS檢查功能。那麼該應用程序如何知道是否強制執行ATS與何時忽略任何錯誤?從服務器源下載的域列表? – wottle
你不能吃你的蛋糕,也不能吃。 –