आप में से जो इस बारे में अधिक संदर्भ चाहते हैं कि यह क्यों हो रहा है, इसके अलावा इसे कैसे ठीक किया जाए, तो नीचे पढ़ें।
IOS 9 की शुरुआत के साथ, ऐप और वेब सेवाओं के बीच कनेक्शन की सुरक्षा को बेहतर बनाने के लिए, ऐप और उसकी वेब सेवा के बीच सुरक्षित कनेक्शन को अन्य प्रथाओं का पालन करना चाहिए । सबसे अच्छा व्यवहार व्यवहार ऐप परिवहन सुरक्षा द्वारा लागू किया जाता है:
- आकस्मिक खुलासे को रोकें, और
- एक डिफ़ॉल्ट व्यवहार प्रदान करें जो सुरक्षित हो।
जैसा कि App Transport Security Technote में बताया गया है , जब आपकी वेब सेवा के साथ संचार करते समय, App Transport Security में अब निम्नलिखित आवश्यकताएं और व्यवहार हैं:
- सर्वर को कम से कम ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) प्रोटोकॉल संस्करण 1.2 का समर्थन करना चाहिए।
- कनेक्शन सिफर उन तक सीमित हैं जो आगे गोपनीयता प्रदान करते हैं (नीचे दिए गए सिफर की सूची देखें)।
- प्रमाण पत्र पर SHA256 या बेहतर हस्ताक्षर हैश एल्गोरिथ्म का उपयोग करके हस्ताक्षर किया जाना चाहिए, जिसमें 2048 बिट या अधिक आरएसए कुंजी या 256 बिट या अधिक एलिप्टिक-कर्व (ईसीसी) कुंजी होगी।
- अमान्य प्रमाणपत्रों का परिणाम एक कठिन विफलता और कोई कनेक्शन नहीं है।
दूसरे शब्दों में, आपके वेब सेवा अनुरोध को चाहिए: a।) HTTPS और b। का उपयोग करें) आगे गोपनीयता के साथ TLS v1.2 का उपयोग कर एन्क्रिप्ट किया जाए।
हालाँकि, जैसा कि अन्य पोस्ट में बताया गया है, आप Info.plist
अपने ऐप के असुरक्षित डोमेन को निर्दिष्ट करके ऐप ट्रांसपोर्ट सिक्योरिटी के इस नए व्यवहार को ओवरराइड कर सकते हैं ।
ओवरराइड करने के लिए, आप जोड़ने की आवश्यकता होगी NSAppTransportSecurity
> NSExceptionDomains
आपके लिए गुण शब्दकोश Info.plist
। इसके बाद, आप अपनी वेब सेवा के डोमेन को NSExceptionDomains
शब्दकोश में जोड़ देंगे ।
उदाहरण के लिए, यदि मैं होस्ट www.yourwebservicehost.com पर एक वेब सेवा के लिए ऐप ट्रांसपोर्ट सिक्योरिटी व्यवहार को बायपास करना चाहता हूं, तो मैं निम्नलिखित कार्य करूंगा:
Xcode में अपना ऐप खोलें।
Info.plist
प्रोजेक्ट नेविगेटर में फ़ाइल ढूंढें और "राइट-माउस" उस पर क्लिक करें और ओपन अस > सोर्स कोड मेनू विकल्प चुनें। प्रॉपर्टी लिस्ट फाइल राइट पेन में दिखाई देगी।
मुख्य गुण शब्दकोश (पहले के तहत <dict>
) के अंदर निम्नलिखित गुण ब्लॉक रखें ।
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>www.example.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
यदि आपको अतिरिक्त डोमेन के लिए अपवाद प्रदान करने की आवश्यकता है तो आप नीचे एक और शब्दकोश संपत्ति जोड़ेंगे NSExceptionDomains
।
ऊपर उल्लिखित कुंजियों के बारे में अधिक जानने के लिए, यह पहले से ही उल्लेखित तकनीकी पढ़ें ।