मैं कॉन्टेक्स्ट क्लास में चेककॉलिंगऑरसेल्फप्रमिशन() के माध्यम से जा रहा था और सोच रहा था कि इसका शोषण कैसे किया जा सकता है; यानी यदि कुछ एप्लिकेशन कैली/आपके आवेदन की एक विधि को ट्रिगर करता है जो बदले में चेक कॉलिंगऑर स्वयंफर्मिशन() को कॉल करता है, अंत में अन्य एप्लिकेशन को उस अनुमति तक पहुंच प्रदान करता है, या संवेदनशील जानकारी जारी करता है जिसे अन्यथा उस अनुमति की आवश्यकता होती है।विशेषाधिकार वृद्धि के लिए चेककॉलिंगऑरसेल्फ पैरामिशन() का पता लगाने
यह विधि केवल किसी भी बुला आवेदन जो कॉल प्राप्त करने वाला आवेदन का एक ही प्रक्रिया में है द्वारा शोषण किया जा सकता है:
यह वही मैं जावा डॉक्टर के माध्यम से जाने के बाद समझ में आ रहा है। एक ही प्रक्रिया में शामिल होने के लिए दोनों ऐप्स को समान प्रमाणपत्र द्वारा हस्ताक्षरित किए जाने के अलावा, मेनिफेस्ट फ़ाइल में समान शेयरसराइड और प्रक्रिया की आवश्यकता होती है।
तो कॉलिंग एप्लिकेशन को निम्नलिखित करने की आवश्यकता है।
पता होना चाहिए कि कौन सी प्रक्रिया और शेयरर आईडी आईडी कैली एप्लिकेशन चल रहा है। (मुझे यकीन नहीं है कि यह कितना व्यवहार्य है?)
उसी प्रमाणपत्र के साथ हस्ताक्षर किया जाना चाहिए जिस पर कैली आवेदन पर हस्ताक्षर किए गए थे (संभावना है कि प्रमाण पत्र सुरक्षित रखा गया है)।
इस शोषण कि checkCallingOrSelfPermission() प्रलेखन के खिलाफ चेतावनी, या कोई अन्य (अधिक यथार्थवादी) तरीके है कि यह शोषण किया जा सकता है है की विधि है।
मैंने this post भी चेक किया, लेकिन उत्तर संतोषजनक नहीं था।
"इस विधि का उपयोग केवल कॉलिंग एप्लिकेशन की एक ही प्रक्रिया में किसी भी कॉलिंग एप्लिकेशन द्वारा किया जा सकता है" - आपको "शोषण" संभव होने पर कोई भी बता सकता है कि आपको "शोषण" क्या है, यह समझाएगा। – CommonsWare
@ कॉमन्सवेयर क्षमा करें अगर मैं पर्याप्त स्पष्ट नहीं था ... शोषण की व्याख्या करने के लिए शीर्ष पर जोड़ा गया विवरण .. – saurav
"यदि कोई एप्लिकेशन कैली/आपके आवेदन की विधि कहता है जो बदले में चेककेलिंगर्सल्फप्रमिशन को कॉल करता है अन्य आवेदन की अनुमति "-' चेककॉलिंगऑरसेल्फ पैरामिशन() 'किसी को कुछ भी नहीं देती है। – CommonsWare