जावा एप्लिकेशन सुरक्षा: शुरुआती लोगों के लिए शीर्ष 10 कमजोरियाँ

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

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

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

जावा एप्लिकेशन सुरक्षा: शुरुआती लोगों के लिए शीर्ष 10 कमजोरियाँ



जावा कॉर्पोरेट और वेब एप्लिकेशन बनाने के लिए सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक बना हुआ है। हालाँकि, किसी भी अन्य भाषा की तरह, यह हमलों के लिए अतिसंवेदनशील है। शुरुआती डेवलपर्स के लिए, सुरक्षा की मूल बातें समझना सिर्फ एक अच्छा अभ्यास नहीं है, बल्कि एक आवश्यक कौशल है। इस लेख में, हम जावा एप्लिकेशन की शीर्ष 10 सबसे सामान्य कमजोरियों का विश्लेषण करेंगे, कोड उदाहरण देंगे और बताएंगे कि अपने प्रोजेक्ट को कैसे सुरक्षित रखें।



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

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

कमजोर कोड का उदाहरण:

String query = "SELECT * FROM users WHERE username = '" + userInput + "'";Statement stmt = connection.createStatement();ResultSet rs = stmt.executeQuery(query);

हमलावर userInput में ' OR '1'='1 जैसा मान पास कर सकता है, जिससे तालिका से सभी डेटा वापस आ जाएगा।

कैसे बचाव करें: हमेशा PreparedStatement का उपयोग करें।

String query = "SELECT * FROM users WHERE username = ?";PreparedStatement pstmt = connection.prepareStatement(query);pstmt.setString(1, userInput);ResultSet rs = pstmt.executeQuery();


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

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

कमजोर कोड का उदाहरण:

out.println("<p>नमस्ते, " + request.getParameter("name") + "</p>");

कैसे बचाव करें: HTML वर्णों को एस्केप करें या आधुनिक टेम्पलेट इंजन (जैसे, Thymeleaf या JSP with JSTL) का उपयोग करें।

// Apache Commons Lang लाइब्रेरी का उपयोग करेंString safeInput = StringEscapeUtils.escapeHtml4(userInput);out.println("<p>नमस्ते, " + safeInput + "</p>");


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

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

कमजोरी का उदाहरण:

<img src="https://bank.com/transfer?amount=1000&to=hacker" />

कैसे बचाव करें: CSRF टोकन का उपयोग करें। Spring Security में, सुरक्षा चालू करने पर यह स्वचालित रूप से होता है।

// Spring Security में CSRF सुरक्षा चालू करेंhttp.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());


4. असुरक्षित डिसीरियलाइज़ेशन

जावा बाइट स्ट्रीम से ऑब्जेक्ट को पुनर्स्थापित करने की अनुमति देता है। यदि हमलावर एक दुर्भावनापूर्ण सीरियलाइज़्ड ऑब्जेक्ट पास कर सकता है, तो इससे मनमाना कोड निष्पादन हो सकता है।

कमजोर कोड का उदाहरण:

ObjectInputStream ois = new ObjectInputStream(request.getInputStream());Object obj = ois.readObject(); // संभावित रूप से खतरनाक ऑपरेशन

कैसे बचाव करें:

  • अविश्वसनीय स्रोतों से डेटा को डिसीरियलाइज़ न करें।
  • क्लासों की श्वेत सूची का उपयोग करें।
  • सत्यापन के साथ JSON (Jackson/Gson) जैसे विकल्प लागू करें।


5. लाइब्रेरी में कमजोरियाँ (Dependency Vulnerabilities)

आधुनिक जावा प्रोजेक्ट दर्जनों तृतीय-पक्ष लाइब्रेरी (Maven, Gradle) का उपयोग करते हैं। पुराने या कमजोर संस्करण हैकिंग का एक सामान्य कारण हैं।

कैसे बचाव करें:

  • नियमित रूप से निर्भरताएँ अपडेट करें।
  • विश्लेषण उपकरणों का उपयोग करें: OWASP Dependency-Check, Snyk, GitHub Dependabot।
  • CI/CD पाइपलाइन में जाँच जोड़ें।


6. असुरक्षित प्रमाणीकरण और सत्र प्रबंधन

कमजोर

ब्लॉग

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