簡體   English   中英

App Transport Security通過自定義URL方案阻止路由

[英]App Transport Security blocks routing via custom url scheme

我的iOS應用程序(用Swift和React Native編寫)有一個自定義url方案,允許我從例如Safari這樣的appappscheme:// https://www.mywebsite.com/somematerial路由到應用程序。 如果我在我的應用中啟用App Transport Security,則會阻止通過自定義網址方案進行路由,並收到以下消息:

App Transport Security已阻止明文HTTP(http://)資源加載,因為它不安全。 可以通過應用程序的Info.plist文件配置臨時例外。

但是,如果我禁用ATS,應用程序將按預期路由。 我沒有通過我的應用程序中的http訪問任何鏈接,在我的路由中,我總是通過https獲取數據。 因此,我不知道為什么ATS會阻止此路由。 你知道我是否必須提供一些關於我的網址方案的其他信息嗎?

請參閱Info.plist中的我的ATS配置:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

我還將我的自定義網址列入白名單:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>myappscheme</string>
</array>

此問題已得到解決。 我注銷了我正在擊中的端點,並檢查它是否滿足ATS要求,方法是在終端:

nscurl --ats-diagnostics https://www.example.com/

事實證明,我試圖獲取的特定子域未能滿足所有ATS要求。 我的服務器團隊修復了問題並使端點安全。

我認為問題在於React Native,你提到你使用Safari作為自定義鏈接的來源,這可能意味着你試圖在模擬器中調試你的應用程序和自定義路由,所以也許你的問題與React Native有關。 如果React Native脫機工作時在真實設備上具有相同的行為,請更新您的問題。

通過將NSAllowsArbitraryLoads條目添加到Info.plist文件暫時禁用App Transport Security(ATS)。 由於ATS不允許對IP地址進行不安全的HTTP請求,因此必須完全禁用它才能在設備上運行。 這只是在設備上進行開發的要求,除非您無法解決問題,否則應該為生產版本啟用ATS。 有關更多信息,請參閱有關配置ATS的這篇文章

反應本機文檔 - 在設備上運行

配置info.plist設置。

您可以添加以下特定域:

<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>www.google.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>
    </dict>
</dict>

暫無
暫無

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

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