iOS Custom URI Handlers / Deeplinks / Custom Schemes
यह एक सारांश है जो संबंधित जानकारी से है https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/
मूल जानकारी
कस्टम URL स्कीम्स ऐप्स को एक कस्टम प्रोटोकॉल का उपयोग करके संचार करने की संभावना प्रदान करते हैं, जैसा कि एप्पल डेवलपर डॉक्यूमेंटेशन में विस्तार से वर्णित है। इन स्कीम्स को ऐप द्वारा घोषित किया जाना चाहिए, जो फिर उन स्कीम्स का पालन करते हुए आने वाले URL को संभालता है। इस वेक्टर के माध्यम से हमलों से बचने के लिए सभी URL पैरामीटरों की पुष्टि करना और किसी भी गलत URL को छोड़ देना महत्वपूर्ण है।
एक उदाहरण दिया गया है जहां URI myapp://hostname?data=123876123
एक विशिष्ट एप्लिकेशन क्रिया को आमंत्रित करता है। एक नोट किया गया वंर्नरेबिलिटी था Skype Mobile ऐप में, जिसने skype://
प्रोटोकॉल के माध्यम से अनधिकृत कॉल क्रियाएँ संभावित की। पंजीकृत स्कीम्स ऐप के Info.plist
में CFBundleURLTypes
के तहत पाए जा सकते हैं। दुर्भाग्यपूर्ण एप्लिकेशन इसे उचित जानकारी को अंतर्ग्रहण करने के लिए URIs को पुनः पंजीकृत करके इसका शोषण कर सकते हैं।
एप्लिकेशन क्वेरी स्कीम्स पंजीकरण
iOS 9.0 से, किसी एप्लिकेशन की उपलब्धता की जांच के लिए, canOpenURL:
में URL स्कीम्स की घोषणा करने की आवश्यकता होती है Info.plist
के तहत LSApplicationQueriesSchemes
के तहत। इससे एक ऐप को 50 तक की सीमा तक सीमित किया जाता है, जिससे ऐप अंकगणित को रोककर गोपनीयता को बढ़ावा देता है।
परीक्षण URL हैंडलिंग और मान्यता
डेवलपर्स को URL पथ निर्माण और मान्यता को समझने के लिए स्रोत कोड में विशिष्ट विधियों की जांच करनी चाहिए, जैसे application:didFinishLaunchingWithOptions:
और application:openURL:options:
। उदाहरण के लिए, टेलीग्राम विभिन्न विधियों का उपयोग URL खोलने के लिए करता है:
अन्य ऐप्स के लिए URL अनुरोधों का परीक्षण
openURL:options:completionHandler:
जैसी विधियाँ अन्य ऐप्स के साथ संवाद करने के लिए URL खोलने के लिए महत्वपूर्ण हैं। ऐप के स्रोत कोड में इस प्रकार की विधियों की पहचान सुरक्षा संबंधित विचारों के लिए महत्वपूर्ण है।
पुरानी विध
संदर्भ
Last updated