PHP अनुप्रयोगों की सुरक्षा: शुरुआती लोगों के लिए 10 मुख्य कमजोरियाँ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP अनुप्रयोगों की सुरक्षा: शुरुआती लोगों के लिए शीर्ष-10 कमजोरियाँ



PHP वेब डेवलपमेंट के लिए सबसे लोकप्रिय भाषाओं में से एक बना हुआ है, लेकिन इसकी लचीलापन अक्सर गंभीर सुरक्षा त्रुटियों का कारण बनती है। एक शुरुआती के लिए एक महत्वपूर्ण कमजोरी को अनदेखा करना आसान है, जो डेटा लीक या सर्वर की पूर्ण हैकिंग का कारण बन सकती है। इस लेख में, हम PHP अनुप्रयोगों की 10 सबसे सामान्य कमजोरियों पर चर्चा करेंगे, खतरनाक कोड के उदाहरण दिखाएंगे और आपको सही तरीके से सुरक्षा करना सिखाएंगे। यह सामग्री विशेष रूप से शुरुआती डेवलपर्स के लिए तैयार की गई है जो पहले दिन से सुरक्षित कोड लिखना चाहते हैं।



1. SQL-इंजेक्शन (SQL Injection)



यह सबसे प्रसिद्ध और खतरनाक कमजोरी है। यह तब उत्पन्न होती है जब उपयोगकर्ता इनपुट को बिना एस्केप किए सीधे SQL क्वेरी में डाल दिया जाता है। हमलावर डेटाबेस तक पहुँच प्राप्त कर सकता है, डेटा को बदल या हटा सकता है।



खतरनाक कोड:

<?php$id = $_GET['id'];$query = "SELECT * FROM users WHERE id = $id";$result = mysqli_query($conn, $query);?>


कैसे बचाव करें: PDO या MySQLi के साथ तैयार क्वेरी (prepared statements) का उपयोग करें।



<?php$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");$stmt->execute(['id' => $_GET['id']]);?>


2. XSS (क्रॉस-साइट स्क्रिप्टिंग)



XSS हमलावर को उस पेज पर दुर्भावनापूर्ण JavaScript कोड इंजेक्ट करने की अनुमति देता है जो अन्य उपयोगकर्ताओं को दिखाया जाता है। इससे सत्र कुकीज़ की चोरी या फ़िशिंग साइटों पर रीडायरेक्ट हो सकता है।



खतरनाक कोड:

<?phpecho "नमस्ते, " . $_GET['name'];?>


कैसे बचाव करें: हमेशा htmlspecialchars() के साथ आउटपुट को एस्केप करें।



<?phpecho "नमस्ते, " . htmlspecialchars($_GET['name'], ENT_QUOTES, 'UTF-8');?>


3. CSRF (क्रॉस-साइट रिक्वेस्ट फोर्जरी)



CSRF हमला एक प्रमाणित उपयोगकर्ता को साइट पर एक अवांछित कार्रवाई करने के लिए मजबूर करता है (जैसे, पासवर्ड बदलना या पैसे ट्रांसफर करना)। हमला तब होता है जब उपयोगकर्ता किसी तीसरे पक्ष की साइट पर एक लिंक पर क्लिक करता है।



कैसे बचाव करें: सभी फॉर्म और स्थिति बदलने वाले अनुरोधों के लिए CSRF टोकन का उपयोग करें।



<?phpsession_start();if (empty($_SESSION['csrf_token'])) {    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));}?><form method="POST">    <input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token'] ?>">    <button type="submit">खाता हटाएँ</button></form>


4. फ़ाइलों के साथ असुरक्षित कार्य



हमलावर को सर्वर पर मनमानी फ़ाइलों को पढ़ने या लिखने की अनुमति देता है। उदाहरण के लिए, path traversal या PHP शेल अपलोड करके।



खतरनाक कोड:

<?phpinclude($_GET['page'] . '.php');?>


कैसे बचाव करें: फ़ाइल पथों में कभी भी उपयोगकर्ता इनपुट का उपयोग न करें। अनुमत मानों की श्वेत सूची का उपयोग करें।



<?php$allowed_pages = ['home', 'about', 'contact'];$page = $_GET['page'] ?? 'home';if (in_array($page, $allowed_pages)) {    include($page . '.php');} else {    include('404.php');}?>


5. प्रमाणीकरण और सत्र प्रबंधन की कमियाँ



कमज़ोर पासवर्ड, ब्रूट-फोर्स से सुरक्षा का अभाव, सत्र फिक्सेशन — ये सब खातों पर कब्ज़ा करने का रास्ता खोलते हैं।



सिफारिशें:

  • पासवर्ड को केवल password_hash() के माध्यम से हैश किए गए रूप में स्टोर करें।
  • लॉगिन वाले सभी पेजों के लिए HTTPS का उपयोग करें।
  • लॉगिन के बाद सत्र ID को पुनर्जीवित करें: session_regenerate_id(true)।
  • सत्र का कम जीवनकाल सेट करें।


6. असुरक्षित प्रत्यक्ष ऑब्जेक्ट संदर्भ (IDOR)



ID

ब्लॉग

पुस्तक अनुशंसाएँ