PHP अनुप्रयोग सुरक्षा: शीर्ष 10 कमजोरियाँ और सुरक्षा

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

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

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

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



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



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

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



असुरक्षित कोड:

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


सुरक्षा: तैयार अभिव्यक्तियों (Prepared Statements) का उपयोग:

<?php$stmt = $conn->prepare("SELECT * FROM users WHERE id = ?");$stmt->bind_param("i", $_GET['id']);$stmt->execute();$result = $stmt->get_result();?>


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

वेब पेजों में दुर्भावनापूर्ण स्क्रिप्ट का इंजेक्शन। यह तीन प्रकार का होता है: परावर्तित, संग्रहीत और DOM-आधारित।



असुरक्षित कोड:

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


सुरक्षा: आउटपुट को एस्केप करना:

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


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

एक हमला जिसमें हमलावर उपयोगकर्ता को उस साइट पर अवांछित कार्य करने के लिए मजबूर करता है जहां वह प्रमाणित है।



सुरक्षा: CSRF-टोकन का उपयोग:

<?phpsession_start();if (empty($_SESSION['csrf_token'])) {    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));}

// फॉर्म सबमिट करते समय जांचif ($_POST['csrf_token'] !== $_SESSION['csrf_token']) { die('CSRF हमला पाया गया!');}?>

<form method="POST"> <input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token'] ?>"> <button type="submit">भेजें</button></form>


4. पथ ट्रैवर्सल (Path Traversal)

एक कमजोरी जो सर्वर पर मनमानी फाइलों को पढ़ने की अनुमति देती है।



असुरक्षित कोड:

<?php$file = $_GET['file'];include("pages/" . $file);?>


सुरक्षा: पथों का सत्यापन और प्रतिबंध:

<?php$allowed_files = ['about.php', 'contact.php', 'home.php'];$file = basename($_GET['file']);

if (in_array($file, $allowed_files)) { include("pages/" . $file);} else { die('पहुंच निषिद्ध');}?>


5. फ़ाइल अपलोड (File Upload)

असुरक्षित फ़ाइल अपलोड सर्वर पर मनमाना कोड निष्पादन का कारण बन सकता है।



सुरक्षा: MIME-प्रकार और एक्सटेंशन की जांच:

<?php$allowed_types = ['image/jpeg', 'image/png', 'image/gif'];$max_size = 5 * 1024 * 1024; // 5 MB

if ($_FILES['file']['size'] > $max_size) { die('फ़ाइल बहुत बड़ी है');}

$finfo = finfo_open(FILEINFO_MIME_TYPE);$mime_type = finfo_file($finfo, $_FILES['file']['tmp_name']);

if (!in_array($mime_type, $allowed_types)) { die('अमान्य फ़ाइल प्रकार');}

// सुरक्षा के लिए फ़ाइल का नाम बदलें$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);$new_name = md5(uniqid()) . '.' . $extension;move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $new_name);?>


6. सत्र निर्धारण (Session Fixation)

एक हमला जिसमें हमलावर उपयोगकर्ता पर एक ज्ञात सत्र पहचानकर्ता थोपता है।



सुरक्षा: सत्र ID को पुनर्जीवित करना:

<?phpsession_start();

// सफल प्रमाणीकरण के बादi

ब्लॉग

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