मेरे पास एक ऐसा एप्लिकेशन है जो POST अनुरोध के माध्यम से डेटा लेता है। मैं डेटाबेस में एक नई पंक्ति डालने के लिए इस डेटा का उपयोग कर रहा हूँ। मुझे पता है कि mysql_real_escape_string()
(प्लस% और _ को हटाने) का उपयोग तारों के लिए जाने का तरीका है, लेकिन पूर्णांक मानों के बारे में क्या है? अभी, मैं उन पर PHP फ़ंक्शन intval()
का उपयोग कर रहा हूं।इंटीजर डाटाबेस इनपुट Sanitizing
हालांकि, मैं यह सुनिश्चित करना चाहता था कि intval()
पूरी तरह से सुरक्षित है। जब मैं intval()
के माध्यम से चर (जैसे यह हमेशा एक पूर्णांक देता है) के माध्यम से चलाया जाता है, तो हम एक एसक्यूएल इंजेक्शन हमले को पूर्ववर्ती करने वाले हमलावर का एक तरीका नहीं देख सकते हैं, लेकिन मैं यह सुनिश्चित करना चाहता था कि यह उन लोगों का मामला है जिनके पास मुझसे अधिक अनुभव है
धन्यवाद।
ध्यान रखें की तुलना में बेहतर है: आप 32 या 64 बिट्स से बड़ी संख्या के साथ काम कर रहे हैं (आपके प्लेटफ़ॉर्म पर निर्भर) 'intval() 'शून्य वापस आ जाएगी। यदि आप अपने डेटाबेस में बहुत बड़ी संख्याओं को स्टोर करने का प्रयास कर रहे हैं तो यह स्पष्ट रूप से अवांछित है। उदाहरण के लिए, फेसबुक की आईडी साल के लिए 32 बिट्स में फिट नहीं है http://developers.facebook.com/blog/post/45 –
@ फ्रैंक किसान: एचएम .. यह दिलचस्प है। सर उठाने के लिए धन्यवाद। मैं उस समस्या को हल करने के लिए क्या कर सकता हूं, यदि इसकी आवश्यकता हो तो मैं देखूंगा। –