सामान्य सुरक्षा कमियाँ और समाधान
Spring Security के संदर्भ में XSS, CSRF और SQL इंजेक्शन जैसी सामान्य वेब अनुप्रयोग सुरक्षा कमियों की पहचान करके उनका समाधान करें।
सामान्य सुरक्षा कमियाँ और समाधान, CoddyKit पर Spring Security 6 और JWT प्रमाणीकरण का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Spring Security 6 और JWT प्रमाणीकरण सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Spring Security 6 और JWT प्रमाणीकरण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
वेब भेद्यताओं का अवलोकन
स्वागत है! इस पाठ में हम वेब अनुप्रयोगों की सामान्य सुरक्षा भेद्यताओं को विस्तार से समझेंगे। मजबूत और सुरक्षित अनुप्रयोग बनाने के लिए इन खतरों को समझना अत्यंत आवश्यक है।
स्प्रिंग सिक्योरिटी जैसे फ्रेमवर्क का उपयोग करने पर भी, सामान्य हमले कैसे काम करते हैं यह जानने से आपको अधिक सुरक्षित कोड लिखने और अपने अनुप्रयोग को प्रभावी ढंग से कॉन्फ़िगर करने में सहायता मिलती है।
क्रॉस-साइट स्क्रिप्टिंग क्या है
क्रॉस-साइट स्क्रिप्टिंग (XSS) तब होती है जब हमलावर अन्य उपयोगकर्ताओं द्वारा देखे जाने वाले वेब पृष्ठों में हानिकारक स्क्रिप्ट (आमतौर पर JavaScript) डाल देते हैं।
ये स्क्रिप्ट सत्र कुकी चुरा सकती हैं, वेबसाइट का रूप बिगाड़ सकती हैं या उपयोगकर्ताओं को फ़िशिंग साइटों पर भेज सकती हैं। इससे उपयोगकर्ता का ब्राउज़र अविश्वसनीय कोड चलाने लगता है।
रिफ्लेक्टेड, स्टोर्ड और DOM XSS
XSS के कुछ प्रकार होते हैं:
- रिफ्लेक्टेड XSS: हानिकारक स्क्रिप्ट अनुरोध का हिस्सा होती है (जैसे URL पैरामीटर) और तुरंत प्रतिक्रिया में वापस 'रिफ्लेक्ट' कर दी जाती है।
- स्टोर्ड XSS: हानिकारक स्क्रिप्ट लक्ष्य सर्वर पर स्थायी रूप से संग्रहीत रहती है (जैसे टिप्पणी फ़ील्ड के माध्यम से डेटाबेस में) और सभी आगंतुकों को भेजी जाती है।
- DOM-आधारित XSS: यह भेद्यता सर्वर-साइड निर्माण के बजाय क्लाइंट-साइड कोड में होती है, जो उपयोगकर्ता के input के आधार पर Document Object Model (DOM) में बदलाव करता है।
XSS से बचाव: input और output
XSS से बचाव के सर्वोत्तम उपाय हैं:
- Input Validation: सर्वर पर सभी उपयोगकर्ता input का कड़ाई से सत्यापन और शुद्धीकरण करें। क्लाइंट से आने वाली किसी भी चीज़ पर भरोसा न करें।
- Output Encoding: HTML में उपयोगकर्ता द्वारा दिया गया डेटा दिखाने से पहले उसे हमेशा 'escape' करें। इससे हानिकारक कोड निरापद पाठ में बदल जाता है और ब्राउज़र उसे चला नहीं पाता।
स्प्रिंग फ्रेमवर्क अक्सर output encoding के लिए उपयोगिताएँ उपलब्ध कराते हैं।
उपयोगकर्ता input की encoding
यह output encoding दिखाने वाला एक सरल Java उदाहरण है। ध्यान दें कि < और > जैसे विशेष HTML अक्षर उनके entity समकक्षों (<, >) में बदल दिए जाते हैं।
ब्राउज़र में प्रस्तुत किए जाने पर इससे स्क्रिप्ट निरापद हो जाती है।
import org.springframework.web.util.HtmlUtils;
public class XssPrevention {
public static void main(String[] args) {
String userInput = "<script>alert('You are hacked!');</script>";
String safeOutput = HtmlUtils.htmlEscape(userInput);
System.out.println("Original: " + userInput);
System.out.println("Encoded: " + safeOutput);
}
}क्रॉस-साइट अनुरोध जालसाजी क्या है
क्रॉस-साइट अनुरोध जालसाजी (CSRF) ऐसा हमला है जिसमें लॉग-इन उपयोगकर्ता से अनजाने में कोई अनुरोध सबमिट करवाया जाता है। उदाहरण के लिए, उसका पासवर्ड बदलना या खरीदारी करवाना।
हमलावर एक हानिकारक वेब पृष्ठ तैयार करता है जो आपके अनुप्रयोग को अनुरोध भेजता है। यदि उपयोगकर्ता लॉग-इन है, तो उसका ब्राउज़र प्रमाणीकरण प्रमाण-पत्र (जैसे कुकी) अपने-आप शामिल कर देता है।
स्प्रिंग सिक्योरिटी का CSRF बचाव
स्प्रिंग सिक्योरिटी में मजबूत, अंतर्निहित CSRF सुरक्षा उपलब्ध है। डिफ़ॉल्ट रूप से, यह प्रत्येक सत्र के लिए एक विशिष्ट, समकालिक टोकन (CSRF टोकन) बनाता है।
यह टोकन GET के अलावा अन्य अनुरोधों (जैसे POST, PUT, DELETE) में शामिल होना चाहिए। टोकन अनुपस्थित या अमान्य होने पर स्प्रिंग सिक्योरिटी अनुरोध को अस्वीकार कर देती है और CSRF हमलों से बचाती है।
SQL Injection क्या है
SQL Injection (SQLi) एक सामान्य हमला है जिसमें backend डेटाबेस की queries में हेरफेर करने के लिए input फ़ील्ड में हानिकारक SQL कोड डाला जाता है।
हमलावर SQLi का उपयोग प्रमाणीकरण को दरकिनार करने, संवेदनशील डेटा प्राप्त करने, डेटा बदलने या डेटाबेस सर्वर पर नियंत्रण तक हासिल करने के लिए कर सकते हैं। इसका शोषण अक्सर तब होता है जब कोई अनुप्रयोग जोड़ी गई strings का उपयोग करके SQL queries बनाता है।
SQLi से बचाव: पैरामीटरयुक्त queries
SQL Injection से बचाव का मुख्य उपाय parameterized queries (जिन्हें prepared statements भी कहा जाता है) का उपयोग करना है।
उपयोगकर्ता input को सीधे SQL string में जोड़ने के बजाय placeholder का उपयोग किया जाता है। इसके बाद डेटाबेस उपयोगकर्ता input को executable SQL code के रूप में नहीं, बल्कि डेटा के रूप में मानता है और हमले को निष्प्रभावी कर देता है।
import java.sql.*;
public class SqlInjectionPrevention {
public static void main(String[] args) {
String username = "admin' OR '1'='1"; // Malicious input
// GOOD: Parameterized Query (Safe concept)
String goodSql = "SELECT * FROM users WHERE username = ?";
System.out.println("Safe SQL (PreparedStatement concept): " + goodSql);
System.out.println("Parameter used: " + username);
// In a real app, 'username' would be set as a parameter
// on a PreparedStatement object.
}
}भेद्यता जाँच
SQL Injection हमलों को रोकने का सबसे प्रभावी तरीका निम्नलिखित में से कौन-सा है?
पाठ का सारांश
बहुत अच्छा! आपने तीन महत्वपूर्ण वेब भेद्यताओं और उनके समाधानों का अध्ययन किया:
- XSS: input validation और output encoding से बचाव करें।
- CSRF: स्प्रिंग सिक्योरिटी डिफ़ॉल्ट रूप से CSRF टोकन के माध्यम से इसे संभालती है।
- SQL Injection: parameterized queries (prepared statements) से बचाव करें।
हमेशा सभी input का सत्यापन करें, सभी output को encode करें और अपने फ्रेमवर्क की अंतर्निहित सुरक्षा सुविधाओं का उपयोग करें!
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “सामान्य सुरक्षा कमियाँ और समाधान” पाठ निःशुल्क है?
हाँ — Spring Security 6 और JWT प्रमाणीकरण अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “सामान्य सुरक्षा कमियाँ और समाधान” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Spring Security 6 और JWT प्रमाणीकरण पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“सामान्य सुरक्षा कमियाँ और समाधान” में मैं क्या सीखूँगा?
Spring Security के संदर्भ में XSS, CSRF और SQL इंजेक्शन जैसी सामान्य वेब अनुप्रयोग सुरक्षा कमियों की पहचान करके उनका समाधान करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Spring Security 6 और JWT प्रमाणीकरण का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Spring Security 6 और JWT प्रमाणीकरण शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Spring Security 6 और JWT प्रमाणीकरण शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“सामान्य सुरक्षा कमियाँ और समाधान” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Spring Security 6 और JWT प्रमाणीकरण पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Spring Security 6 और JWT प्रमाणीकरण पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- प्रोडक्शन सुरक्षा सुदृढ़ीकरण
- सुरक्षा इवेंट की लॉगिंग और निगरानी
- सामान्य सुरक्षा कमियाँ और समाधान
- सुरक्षा headers और HTTPS कॉन्फ़िगर करना