iOS
ऐप परिवहन सुरक्षा (एटीएस)
खोज…
पैरामीटर
पैरामीटर | विवरण |
---|---|
NSAppTransportSecurity | ATS को कॉन्फ़िगर करें |
NSAllowsArbitraryLoads | हर जगह एटीएस को निष्क्रिय करने के लिए YES पर सेट करें। IOS 10 और बाद में, और macOS 10.12 और बाद में, इस कुंजी के मूल्य को अनदेखा कर दिया जाता है यदि आपके एप्लिकेशन की Info.plist फ़ाइल में निम्न में से कोई भी कुंजी मौजूद हो: NSAllowsArbitavorLoadsInMedia, NSAllowsArbitavorLoadsInWebContent, NSAllowsLocalNetworking |
NSAllowsArbitraryLoadsInMedia | AV फाउंडेशन फ्रेमवर्क से API का उपयोग करके लोड किए गए मीडिया के लिए ATS को अक्षम करने के लिए YES पर सेट करें। (iOS 10+, macOS 10.12+) |
NSAllowsArbitraryLoadsInWebContent | अपने NSURLSession कनेक्शन को प्रभावित किए बिना अपने ऐप के वेब दृश्यों ( WKWebView , UIWebView , WebView ) में ATS को अक्षम करने के लिए YES पर सेट करें। (iOS 10+, macOS 10.12+) |
NSAllowsLocalNetworking | अयोग्य डोमेन और .local डोमेन के कनेक्शन के लिए अक्षम करने के लिए YES पर सेट करें। (iOS 10+, macOS 10.12+) |
NSExceptionDomains | विशिष्ट डोमेन के लिए अपवाद कॉन्फ़िगर करें |
NSIncludesSubdomains | चयनित डोमेन के सभी उप-डोमेन के अपवादों को लागू करने के लिए YES पर सेट करें। |
NSRequiresCertificateTransparency | ज्ञात मान्य सीटी लॉग से वैध, हस्ताक्षरित प्रमाणपत्र पारदर्शिता (सीटी) टाइमस्टैम्प की आवश्यकता के लिए YES पर सेट करें, डोमेन पर सर्वर (X.509) प्रमाणपत्र के लिए प्रस्तुत किया जाए। (iOS 10+, macOS 10.12+) |
NSExceptionAllowsInsecureHTTPLoads | चयनित डोमेन पर HTTP की अनुमति देने के लिए YES पर सेट करें। |
NSExceptionRequiresForwardSecrecy | YES चूक; फॉरवर्ड सिक्योरिटी को निष्क्रिय करने और अधिक सिफर स्वीकार करने के लिए NO सेट करें। |
NSExceptionMinimumTLSVersion | TLSv1.2 ; संभावित मान हैं: TLSv1.0 , TLSv1.1 , TLSv1.2 |
NSThirdPartyExceptionAllowsInsecureHTTPLoads | NSExceptionAllowsInsecureHTTPLoads समान, लेकिन उन डोमेन के लिए जिनका आपके पास कोई नियंत्रण नहीं है |
NSThirdPartyExceptionRequiresForwardSecrecy | NSExceptionRequiresForwardSecrecy समान, लेकिन उन डोमेन के लिए जिनका आपके पास कोई नियंत्रण नहीं है |
NSThirdPartyExceptionMinimumTLSVersion | NSExceptionMinimumTLSVersion समान, लेकिन उन डोमेन के लिए जिनका आपके पास कोई नियंत्रण नहीं है |
टिप्पणियों
ऐप ट्रांसपोर्ट सिक्योरिटी आईओएस और मैकओएस में एक सुरक्षा सुविधा है। यह असुरक्षित कनेक्शन स्थापित करने से ऐप्स को रोकता है। डिफ़ॉल्ट रूप से, ऐप्स केवल सुरक्षित HTTPS कनेक्शन का उपयोग कर सकते हैं।
यदि किसी ऐप को HTTP के माध्यम से सर्वर से कनेक्ट करना है, तो Info.plist
में अपवादों को परिभाषित किया जाना चाहिए। (उस बारे में अधिक जानकारी के लिए उदाहरण देखें)
नोट: 2017 में, Apple ATS को लागू करेगा। इसका मतलब है, कि अब आप उन एप्लिकेशन को अपलोड नहीं कर सकते हैं जिनके पास एटीएस-अपवादों को Info.plist
में परिभाषित किया गया है। यदि आप अच्छे तर्क प्रदान कर सकते हैं, तो आपको HTTP का उपयोग क्यों करना है, आप Apple से संपर्क कर सकते हैं और वे आपको अपवादों को परिभाषित करने की अनुमति दे सकते हैं। (स्रोत: WWDC 2016 - सत्र 706 )
ऐप ट्रांसपोर्ट सिक्योरिटी कॉन्फ़िगरेशन के बारे में अधिक जानकारी कोकोआ दस्तावेज़ में पाई जा सकती है।
सभी HTTP सामग्री लोड करें
ऐप्पल ने ऐप और वेब सेवाओं के बीच गोपनीयता और सुरक्षा में सुधार के लिए ATS को iOS 9 के साथ एक नए सुरक्षा फीचर के रूप में पेश किया। डिफ़ॉल्ट रूप से एटीएस सभी गैर HTTPS अनुरोधों को विफल करता है। जबकि यह उत्पादन वातावरण के लिए वास्तव में अच्छा हो सकता है, यह परीक्षण के दौरान एक उपद्रव हो सकता है।
ATS लक्ष्य की Info.plist
फ़ाइल में NSAppTransportSecurity
(Xcode Info.plist संपादक में App Transport Security Settings
) के साथ कॉन्फ़िगर किया गया है। सभी HTTP सामग्री की अनुमति के लिए, जोड़ने Allow Arbitrary Loads
(बूलियन NSAllowsArbitraryLoads
) और के लिए सेट YES
। यह उत्पादन ऐप्स के लिए अनुशंसित नहीं है, और यदि HTTP सामग्री की आवश्यकता है, तो यह अनुशंसा की जाती है कि इसे इसके बजाय चुनिंदा रूप से सक्षम किया जाए।
HTTP कंटेंट को चुनिंदा लोड करें
सभी HTTP सामग्री को सक्षम करने के समान, सभी कॉन्फ़िगरेशन App Transport Security Settings
तहत होता है। शीर्ष स्तर एटीएस सेटिंग्स में Exception Domains
शब्दकोश ( NSExceptionDomains
) जोड़ें।
प्रत्येक डोमेन के लिए, अपवाद डोमेन में एक शब्दकोश आइटम जोड़ें, जहां कुंजी प्रश्न में डोमेन है। उस डोमेन के लिए HTTPS आवश्यकता को अक्षम करने के लिए NSExceptionAllowsInsecureHTTPLoads
को YES
सेट करें।
एंडपॉइंट्स को SSL की आवश्यकता होती है
IOS 9 में पेश किया गया, सभी एंडपॉइंट्स को HTTPS स्पेसिफिकेशन का पालन करना होगा।
SSL का उपयोग न करने वाला कोई भी समापन बिंदु कंसोल लॉग में चेतावनी के साथ विफल हो जाएगा। आपके आवेदन में यह दिखाई देगा कि इंटरनेट कनेक्शन विफल हो गया है।
अपवाद कॉन्फ़िगर करने के लिए: अपनी Info.plist फ़ाइल में निम्नलिखित रखें:
- केवल विशेष डोमेन (testdomain.com) की अनुमति दें:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>testdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
इस तरह के व्यवहार की अनुमति देने वाली कुंजी NSExceptionAllowsInsecureHTTPLoads
। इस स्थिति में, एप्लिकेशन केवल उल्लेख किए गए डोमेन (testdomain.com) से HTTP कनेक्शन की अनुमति देगा और अन्य सभी HTTP कनेक्शन को ब्लॉक कर देगा।
प्रमुख NSIncludesSubdomains
निर्दिष्ट करता है कि उल्लेखित डोमेन के किसी भी और सभी उपडोमेन (testdomain.com) को भी अनुमति दी जानी चाहिए।
- किसी भी डोमेन को अनुमति दें:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
इस स्थिति में, एप्लिकेशन किसी भी डोमेन से HTTP कनेक्शन की अनुमति देगा। 1 जनवरी 2017 तक, इस ध्वज का उपयोग करने से पूरी तरह से ऐप स्टोर की समीक्षा हो जाएगी और ऐप डेवलपर्स को यह बताना होगा कि उन्हें पहली जगह में इस अपवाद का उपयोग करने की आवश्यकता क्यों है। संभावित स्पष्टीकरण में शामिल हैं:
- एक एप्लिकेशन जो एन्क्रिप्टेड मीडिया सामग्री को लोड करता है जिसमें कोई व्यक्तिगत जानकारी नहीं होती है।
- उन डिवाइसों के कनेक्शन जिन्हें सुरक्षित कनेक्शन का उपयोग करने के लिए अपग्रेड नहीं किया जा सकता है।
- एक सर्वर से कनेक्शन जो किसी अन्य इकाई द्वारा प्रबंधित किया जाता है और सुरक्षित कनेक्शन का समर्थन नहीं करता है।