Helpex - Trao đổi & giúp đỡ Đăng nhập
115

https://developer.apple.com/ideo/wwdc/2015/?id=711 @ 5: 55

Tôi dường như không thể thêm nó vào thông tin của mình. Không có giá trị nó. Tôi đang chạy XCode Phiên bản 7.0 beta (7A121l) và đang thử nghiệm trên iOS9.

Vì tôi không thể khai báo cụ thể URL nào tôi muốn thấy trong video, tôi tiếp tục nhận được "Bảo mật vận chuyển ứng dụng đã chặn tải tài nguyên HTTP (http: //) rõ ràng vì nó không an toàn. Ngoại lệ tạm thời có thể được định cấu hình qua ứng dụng của bạn Tệp Info.plist "lỗi.

Tuy nhiên, tôi dường như không thể cấu hình nó. Có ý kiến ​​gì không?

115 hữu ích 3 bình luận 157k xem chia sẻ
13 trả lời 13
115

thử với điều này --- đã làm việc với tôi trong Xcode-beta 4 7.0

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <!--Include to allow subdomains-->
            <key>NSIncludesSubdomains</key>
            <true/>
            <!--Include to allow HTTP requests-->
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <!--Include to specify minimum TLS version-->
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>
    </dict>
</dict>

Ngoài ra một tùy chọn khác, nếu bạn muốn tắt ATS, bạn có thể sử dụng tùy chọn này:

<key>NSAppTransportSecurity</key>  
 <dict>  
      <key>NSAllowsArbitraryLoads</key><true/>  
 </dict>

Nhưng điều này không được khuyến khích ở tất cả. Máy chủ phải có chứng chỉ SSL và do đó không có rò rỉ quyền riêng tư.

115 hữu ích 4 bình luận chia sẻ
86

Bạn phải thêm khóa NSAllowsArbitraryLoads vào CÓ trong từ điển NSAppTransportSecurity trong tệp info.plist của bạn.

Ví dụ,

 <key>NSAppTransportSecurity</key>
 <dict>
      <key>NSAllowsArbitraryLoads</key>
     <true/>
 </dict>

Làm cách nào tôi có thể thêm NSAppTransportSecurity vào tệp info.plist của mình?

86 hữu ích 1 bình luận chia sẻ
43

Điều đó không hiệu quả với tôi, nhưng điều này đã tạo ra mánh khóe:

<key>NSAppTransportSecurity</key>  
     <dict>  
          <key>NSAllowsArbitraryLoads</key><true/>  
     </dict>  
43 hữu ích 5 bình luận chia sẻ
21

Chỉ cần làm rõ ... Bạn nên luôn luôn sử dụng httpS

Nhưng bạn có thể bỏ qua nó thêm ngoại lệ:

Làm cách nào tôi có thể thêm NSAppTransportSecurity vào tệp info.plist của mình?

21 hữu ích 0 bình luận chia sẻ
9

Xcode 8.2, iOS 10

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
9 hữu ích 1 bình luận chia sẻ
3

Cập nhật câu trả lời (sau wwdc 2016):

IOS apps will require secure HTTPS connections by the end of 2016

App Transport Security, hay ATS, là một tính năng mà Apple giới thiệu trong iOS 9. Khi ATS được bật, nó buộc một ứng dụng kết nối với các dịch vụ web qua kết nối HTTPS thay vì HTTP không bảo mật.

Tuy nhiên, các nhà phát triển vẫn có thể tắt ATS và cho phép ứng dụng của họ gửi dữ liệu qua kết nối HTTP như được đề cập trong các câu trả lời ở trên. Vào cuối năm 2016, Apple sẽ bắt buộc ATS cho tất cả các nhà phát triển muốn gửi ứng dụng của họ lên App Store. liên kết

3 hữu ích 1 bình luận chia sẻ
2
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>com</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>net</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>org</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

Điều này sẽ cho phép kết nối với .com .net .org

2 hữu ích 1 bình luận chia sẻ
2
<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>uservoice.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>
2 hữu ích 0 bình luận chia sẻ
1

Để giải thích thêm một chút về câu trả lời của ParaSara: Bảo mật App Transport sẽ trở thành bắt buộc và cố gắng tắt nó có thể khiến ứng dụng của bạn bị từ chối.

Là nhà phát triển, bạn có thể tắt bảo mật App Transport nếu mã mạng của bạn không hoạt động với nó và bạn muốn tiếp tục phát triển khác trước khi khắc phục mọi sự cố. Nói trong một nhóm năm, bốn người có thể tiếp tục làm việc với những thứ khác trong khi một người sửa tất cả các vấn đề. Bạn cũng có thể tắt bảo mật App Transport làm công cụ gỡ lỗi nếu bạn gặp sự cố về mạng và bạn muốn kiểm tra xem chúng có phải do bảo mật của App Transport không. Ngay khi bạn biết bạn nên bật lại ngay lập tức.

Giải pháp mà bạn phải sử dụng trong tương lai là không sử dụng http, trừ khi bạn sử dụng máy chủ của bên thứ ba không hỗ trợ https. Nếu máy chủ của bạn không hỗ trợ https, Apple sẽ gặp vấn đề với điều đó. Ngay cả với các máy chủ của bên thứ ba, tôi sẽ không đặt cược rằng Apple chấp nhận nó.

Tương tự với các kiểm tra khác nhau cho bảo mật máy chủ. Tại một số điểm, Apple sẽ chỉ chấp nhận các ngoại lệ chính đáng.

Nhưng chủ yếu, hãy xem xét điều này: Bạn đang gây nguy hiểm cho sự riêng tư của khách hàng. Đó là một điều không lớn trong cuốn sách của tôi. Đừng làm vậy. Sửa mã của bạn, đừng xin phép chạy mã không an toàn.

1 hữu ích 0 bình luận chia sẻ
1

Một tin xấu cho các nhà phát triển sử dụng NSAppTransportSecurity.

UPDATE:
[Apple will require HTTPS connections for iOS apps by the end of 2016]

https://techcrunch.com/2016/06/14/apple-will-require-https-connections-for-ios-apps-by-the-end-of-2016/

1 hữu ích 0 bình luận chia sẻ
1

Trong dòng lệnh mac shell , sử dụng lệnh sau:

plutil -insert NSAppTransportSecurity -xml "<array><string> hidden </string></array>" [location of your xcode project]/Info.plist 

Lệnh sẽ thêm tất cả các giá trị cần thiết vào tệp plist của bạn.

1 hữu ích 0 bình luận chia sẻ
1

XCODE 8, Swift 3: Bạn cần thêm một hàng: **

"Cài đặt bảo mật vận chuyển ứng dụng"

** trong thông tin.plist bên trong thông tin Danh sách tài sản.

1 hữu ích 1 bình luận chia sẻ
1

Xcode 9.2, Swift 4, điều này làm việc cho tôi.

<key>App Transport Security Settings</key>
<dict>
    <key>Allow Arbitrary Loads</key>
    <true/>
</dict>
1 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ ios objective-c xcode ios9 , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading