"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > XSS हमलों को रोकने के उपाय: एक व्यापक मार्गदर्शिका

XSS हमलों को रोकने के उपाय: एक व्यापक मार्गदर्शिका

2024-11-08 को प्रकाशित
ब्राउज़ करें:764

1. एक्सएसएस क्या है?

ays to Prevent XSS Attacks: A Comprehensive Guide

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

1.1. XSS हमलों के प्रकार

ays to Prevent XSS Attacks: A Comprehensive Guide

एक्सएसएस हमले आम तौर पर तीन श्रेणियों में आते हैं:

  • संग्रहीत XSS : दुर्भावनापूर्ण स्क्रिप्ट सर्वर पर संग्रहीत की जाती है (उदाहरण के लिए, डेटाबेस में) और जब उपयोगकर्ता किसी विशिष्ट पृष्ठ का अनुरोध करते हैं तो उन्हें सेवा प्रदान की जाती है।
  • प्रतिबिंबित XSS : दुर्भावनापूर्ण स्क्रिप्ट एक URL में एम्बेड की जाती है और सर्वर द्वारा उपयोगकर्ता को वापस दिखाई देती है।
  • DOM-आधारित XSS: हमला वेब पेज के दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) के भीतर होता है, बिना किसी सर्वर इंटरैक्शन के।

1.2. XSS हमलों का प्रभाव

ays to Prevent XSS Attacks: A Comprehensive Guide

XSS हमलों के गंभीर परिणाम हो सकते हैं, जिनमें शामिल हैं:

  • डेटा चोरी: हमलावर कुकीज़, सत्र टोकन और व्यक्तिगत डेटा जैसी संवेदनशील जानकारी चुरा सकते हैं।
  • सत्र अपहरण : हमलावर किसी उपयोगकर्ता के सत्र को अपहरण कर सकते हैं और उनकी ओर से अनधिकृत कार्य कर सकते हैं।
  • विरूपण : हमलावर अवांछित सामग्री प्रदर्शित करके वेब पेजों की उपस्थिति को संशोधित कर सकते हैं।

2. स्प्रिंग बूट में XSS को कैसे रोकें

स्प्रिंग बूट में XSS को रोकने के लिए सुरक्षित कोडिंग प्रथाओं, सत्यापन और स्वच्छता के संयोजन की आवश्यकता होती है। नीचे, हम इसे प्राप्त करने के लिए विभिन्न तकनीकों का पता लगाएंगे।

2.1. उपयोगकर्ता इनपुट को मान्य किया जा रहा है

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

@PostMapping("/submit")
public String submitForm(@RequestParam("comment") @NotBlank @Size(max = 500) String comment) {
    // Process the comment
    return "success";
}

उपरोक्त कोड में, हम सत्यापित करते हैं कि टिप्पणी फ़ील्ड खाली नहीं है और 500 वर्णों से अधिक नहीं है। यह बड़ी, संभावित रूप से हानिकारक स्क्रिप्ट के इंजेक्शन को रोकने में मदद करता है।

2.2. एन्कोडिंग आउटपुट

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

@PostMapping("/display")
public String displayComment(Model model, @RequestParam("comment") String comment) {
    String safeComment = HtmlUtils.htmlEscape(comment);
    model.addAttribute("comment", safeComment);
    return "display";
}

इस उदाहरण में, हम उपयोगकर्ता की टिप्पणी को पृष्ठ पर प्रस्तुत करने से पहले एन्कोड करने के लिए HtmlUtils.htmlEscape() का उपयोग करते हैं। यह किसी भी एम्बेडेड स्क्रिप्ट को ब्राउज़र द्वारा निष्पादित होने से रोकता है।

2.3. सामग्री सुरक्षा नीति (सीएसपी) का उपयोग करना

सामग्री सुरक्षा नीति (सीएसपी) एक सुरक्षा सुविधा है जो यह नियंत्रित करके XSS को रोकने में मदद करती है कि किसी उपयोगकर्ता एजेंट को किसी दिए गए पृष्ठ के लिए किन संसाधनों को लोड करने की अनुमति है।

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.headers()
            .contentSecurityPolicy("script-src 'self'");
    }
}

उपरोक्त कॉन्फ़िगरेशन निर्दिष्ट करता है कि केवल पृष्ठ के समान मूल की स्क्रिप्ट को ही निष्पादित किया जा सकता है, जो तृतीय-पक्ष स्रोतों से किसी भी इंजेक्टेड स्क्रिप्ट को प्रभावी ढंग से अवरुद्ध करता है।

2.4. एंटीसामी लाइब्रेरी का उपयोग करना

AntiSamy एक जावा लाइब्रेरी है जो XSS हमलों को रोकने के लिए HTML इनपुट को स्वच्छ कर सकती है। यह सुनिश्चित करता है कि केवल सुरक्षित टैग और विशेषताओं की अनुमति है।

public String sanitizeInput(String input) {
    Policy policy = Policy.getInstance("antisamy-slashdot.xml");
    AntiSamy antiSamy = new AntiSamy();
    CleanResults cleanResults = antiSamy.scan(input, policy);
    return cleanResults.getCleanHTML();
}

उपरोक्त कोड में, हम पूर्वनिर्धारित नीति के अनुसार उपयोगकर्ता के इनपुट को स्वच्छ करने के लिए एंटीसैमी का उपयोग करते हैं। यह किसी भी दुर्भावनापूर्ण स्क्रिप्ट को हटा देता है या निष्क्रिय कर देता है।

4. निष्कर्ष

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

याद रखें, सुरक्षा एक सतत प्रक्रिया है, और नवीनतम खतरों और सर्वोत्तम प्रथाओं के बारे में सूचित रहना आवश्यक है।

यदि आपके कोई प्रश्न हैं या आगे स्पष्टीकरण की आवश्यकता है, तो बेझिझक नीचे एक टिप्पणी छोड़ें। मैं मदद के लिए यहाँ हूँ!

यहां अधिक पोस्ट पढ़ें : एक्सएसएस हमलों को रोकने के 4 तरीके: एक व्यापक मार्गदर्शिका

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/anh_trntun_4732cf3d299/4-ways-to-prevent-xss-attacks-a-comprecious-guide-539j?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3