SQL इंजेक्शन हमले तब होते हैं जब उपयोगकर्ता इनपुट गलत तरीके से एन्कोड किया गया है। आम तौर पर, उपयोगकर्ता इनपुट कुछ डेटा होता है जिसे उपयोगकर्ता अपनी क्वेरी के साथ भेजता है, यानी $_GET
में मान , $_POST
, $_COOKIE
, $_REQUEST
, या $_SERVER
सरणियाँ। हालांकि, उपयोगकर्ता इनपुट कई अन्य स्रोतों से भी आ सकता है, जैसे सॉकेट, दूरस्थ वेबसाइट, फ़ाइलें, आदि। (जैसे 'foobar'
) उपयोगकर्ता इनपुट के रूप में ।
आपके द्वारा पोस्ट किए गए कोड में, mysql_real_escape_string
उपयोगकर्ता इनपुट को एन्कोड (=भागने) के लिए उपयोग किया जाता है। इसलिए कोड सही है, यानी किसी भी SQL इंजेक्शन हमले की अनुमति नहीं देता है।
ध्यान दें कि mysql_real_escape_string
. पर कॉल को भूलना बहुत आसान है - और एक कुशल हमलावर के लिए एक समय पर्याप्त है! इसलिए, आप आधुनिक PDO
का उपयोग करना चाह सकते हैं। तैयार स्टेटमेंट
के साथ एडोडब के बजाय।