मूल रूप से, हर बार जब आप कुछ असुरक्षित डेटा (उपयोगकर्ता इनपुट, डेटाबेस से मूल्य, फ़ाइल या बाहरी वेबसाइट, यानी कोई भी डेटा जो आप 100% नहीं हैं) का उपयोग करते हैं सुनिश्चित करें कि यह सुरक्षित है) SQL क्वेरी में, आपको mysql_real_escape_string . ध्यान दें कि OWASP के अनुसार , यह फ़ंक्शन गतिशील तालिका नामों से बचने के लिए सुरक्षित नहीं है (लेकिन यह "मूल" उपयोगकर्ता इनपुट प्रविष्टि की तुलना में बहुत कम सामान्य है)।
मेरा सुझाव है कि आप SQL इंजेक्शन पर OWASP लेख पर एक नज़र डालें। , और बाकी वेबसाइट ब्राउज़ करने के लिए भी। यह वेब अनुप्रयोगों में सुरक्षा के बारे में जानकारी का एक बड़ा स्रोत है।
IMO, SQL इंजेक्शन को रोकने का पसंदीदा तरीका तैयार बयान ।
कृपया याद रखें कि यदि आप mysql_real_escape_string()
. का उपयोग करना चुनते हैं यह केवल तभी काम करता है जब एक स्ट्रिंग के अंदर उपयोग किया जाता है जिसे उद्धरणों द्वारा सीमित किया जाता है। किसी भी गैर-उद्धृत मूल्यों पर इसका कभी भी उपयोग न करें। इसमें संख्यात्मक मान शामिल हैं; इसके बजाय, सत्यापित करें कि उपयोगकर्ता-इनपुट वास्तव में संख्यात्मक है।