Avatar ·

PHP में SQL-इंजेक्शन को कैसे रोकें? (पूर्ण गाइड)

सभी को नमस्ते! मैं एक शुरुआती PHP डेवलपर हूँ, और मुझे सुरक्षा से जुड़ी एक गंभीर समस्या का सामना करना पड़ा है। मैं एक सरल लॉगिन फॉर्म लिख रहा हूँ, और मेरा कोड कुछ इस तरह दिखता है: ```php $username = $_POST['username']; $password = $_POST['password']; $query = "SELECT * FROM users WHERE username='$username' AND password='$password'"; $result = mysqli_query($conn, $query); ``` मुझे पता है कि यह बहुत असुरक्षित है, लेकिन मैं समझ नहीं पा रहा हूँ कि इसे सही तरीके से कैसे ठीक किया जाए। दोस्तों ने कहा कि मुझे SQL-इंजेक्शन के ज़रिए हैक किया जा सकता है। मैंने लॉगिन फील्ड में कुछ ऐसा डालने की कोशिश की जैसे `admin' OR '1'='1`, और सच में — मुझे बिना पासवर्ड के सिस्टम में प्रवेश मिल गया! मैंने `mysqli_real_escape_string()` के बारे में पढ़ा है, लेकिन सुना है कि यह कोई रामबाण इलाज नहीं है। लोग PDO और prepared statements के बारे में भी बात करते हैं, लेकिन मैं समझ नहीं पा रहा हूँ कि उनका सही उपयोग कैसे किया जाए। मेरा प्रोजेक्ट PHP 8.1 और MySQL पर चल रहा है। कृपया विस्तार से समझाएँ: 1. SQL-इंजेक्शन वास्तव में कैसे काम करता है? 2. सुरक्षा के आधुनिक तरीके क्या हैं? 3. कौन सा तरीका सबसे अच्छा अभ्यास माना जाता है?