एक्सएसएस, या क्रॉस-साइट स्क्रिप्टिंग, वेब अनुप्रयोगों में पाई जाने वाली एक प्रकार की सुरक्षा भेद्यता है। यह हमलावरों को अन्य उपयोगकर्ताओं द्वारा देखे गए वेब पेजों में दुर्भावनापूर्ण स्क्रिप्ट, आमतौर पर जावास्क्रिप्ट, डालने की अनुमति देता है। इससे अनधिकृत गतिविधियां, डेटा चोरी या सत्र अपहरण हो सकता है।
एक्सएसएस हमले आम तौर पर तीन श्रेणियों में आते हैं:
XSS हमलों के गंभीर परिणाम हो सकते हैं, जिनमें शामिल हैं:
स्प्रिंग बूट में XSS को रोकने के लिए सुरक्षित कोडिंग प्रथाओं, सत्यापन और स्वच्छता के संयोजन की आवश्यकता होती है। नीचे, हम इसे प्राप्त करने के लिए विभिन्न तकनीकों का पता लगाएंगे।
एक्सएसएस हमलों को रोकने के सबसे प्रभावी तरीकों में से एक उपयोगकर्ता इनपुट को मान्य करना है। सुनिश्चित करें कि सभी इनपुट यह पुष्टि करने के लिए मान्य हैं कि यह अपेक्षित प्रारूप से मेल खाता है और किसी भी दुर्भावनापूर्ण डेटा को अस्वीकार करता है।
@PostMapping("/submit") public String submitForm(@RequestParam("comment") @NotBlank @Size(max = 500) String comment) { // Process the comment return "success"; }
उपरोक्त कोड में, हम सत्यापित करते हैं कि टिप्पणी फ़ील्ड खाली नहीं है और 500 वर्णों से अधिक नहीं है। यह बड़ी, संभावित रूप से हानिकारक स्क्रिप्ट के इंजेक्शन को रोकने में मदद करता है।
एन्कोडिंग आउटपुट यह सुनिश्चित करता है कि वेब पेज पर प्रस्तुत किसी भी डेटा को निष्पादन योग्य कोड के बजाय टेक्स्ट के रूप में माना जाता है। स्प्रिंग बूट डेटा एन्कोडिंग के लिए अंतर्निहित तंत्र प्रदान करता है।
@PostMapping("/display") public String displayComment(Model model, @RequestParam("comment") String comment) { String safeComment = HtmlUtils.htmlEscape(comment); model.addAttribute("comment", safeComment); return "display"; }
इस उदाहरण में, हम उपयोगकर्ता की टिप्पणी को पृष्ठ पर प्रस्तुत करने से पहले एन्कोड करने के लिए HtmlUtils.htmlEscape() का उपयोग करते हैं। यह किसी भी एम्बेडेड स्क्रिप्ट को ब्राउज़र द्वारा निष्पादित होने से रोकता है।
सामग्री सुरक्षा नीति (सीएसपी) एक सुरक्षा सुविधा है जो यह नियंत्रित करके XSS को रोकने में मदद करती है कि किसी उपयोगकर्ता एजेंट को किसी दिए गए पृष्ठ के लिए किन संसाधनों को लोड करने की अनुमति है।
@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.headers() .contentSecurityPolicy("script-src 'self'"); } }
उपरोक्त कॉन्फ़िगरेशन निर्दिष्ट करता है कि केवल पृष्ठ के समान मूल की स्क्रिप्ट को ही निष्पादित किया जा सकता है, जो तृतीय-पक्ष स्रोतों से किसी भी इंजेक्टेड स्क्रिप्ट को प्रभावी ढंग से अवरुद्ध करता है।
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(); }
उपरोक्त कोड में, हम पूर्वनिर्धारित नीति के अनुसार उपयोगकर्ता के इनपुट को स्वच्छ करने के लिए एंटीसैमी का उपयोग करते हैं। यह किसी भी दुर्भावनापूर्ण स्क्रिप्ट को हटा देता है या निष्क्रिय कर देता है।
एक्सएसएस हमले वेब अनुप्रयोगों के लिए एक महत्वपूर्ण खतरा पैदा करते हैं, लेकिन सावधानीपूर्वक इनपुट सत्यापन, आउटपुट एन्कोडिंग और सुरक्षा नीतियों के माध्यम से उन्हें प्रभावी ढंग से कम किया जा सकता है। इस आलेख में उल्लिखित तकनीकों का पालन करके, आप अपने स्प्रिंग बूट एप्लिकेशन को XSS हमलों से सुरक्षित कर सकते हैं।
याद रखें, सुरक्षा एक सतत प्रक्रिया है, और नवीनतम खतरों और सर्वोत्तम प्रथाओं के बारे में सूचित रहना आवश्यक है।
यदि आपके कोई प्रश्न हैं या आगे स्पष्टीकरण की आवश्यकता है, तो बेझिझक नीचे एक टिप्पणी छोड़ें। मैं मदद के लिए यहाँ हूँ!
यहां अधिक पोस्ट पढ़ें : एक्सएसएस हमलों को रोकने के 4 तरीके: एक व्यापक मार्गदर्शिका
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3