उदाहरण:

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

एचटीएमएल:

<इनपुट प्रकार = \\\"टेक्स्ट\\\" आईडी = \\\"उपयोगकर्ता नाम\\\" नाम = \\\"उपयोगकर्ता नाम\\\" आवश्यक> <लेबल फॉर='पासवर्ड'>पासवर्ड: <इनपुट प्रकार = \\\"पासवर्ड\\\" आईडी = \\\"पासवर्ड\\\" नाम = \\\"पासवर्ड\\\" आवश्यक> <बटन प्रकार='सबमिट'>लॉगिन
जावास्क्रिप्ट:

document.getElementById('लॉगिन-फॉर्म').addEventListener('submit', function(event) { स्थिरांक उपयोगकर्ता नाम = document.getElementById('उपयोगकर्ता नाम').मूल्य; स्थिरांक पासवर्ड = document.getElementById('password').value; यदि (!validateInput(उपयोगकर्ता नाम) || !validateInput(password)) { चेतावनी('अमान्य इनपुट'); इवेंट.preventDefault(); }});फ़ंक्शन वैलिडेटइनपुट(इनपुट) { स्थिरांक regex = /^[a-zA-Z0-9_]*$/; वापसी regex.test(इनपुट);}
सर्वर-साइड (Node.js उदाहरण):

const Express = require('express');कॉन्स्ट ऐप = एक्सप्रेस();स्थिरांक bodyParser = आवश्यकता('बॉडी-पार्सर');const mysql = आवश्यकता('mysql');स्थिरांक db = mysql.createConnection({ होस्ट: 'लोकलहोस्ट', उपयोगकर्ता: 'रूट', पासवर्ड: '', डेटाबेस: 'परीक्षण'});ऐप.यूज़(बॉडीपार्सर.urlencoded({विस्तारित: सत्य }));ऐप.पोस्ट('/लॉगिन', (req, res) => { स्थिरांक उपयोगकर्ता नाम = req.body.उपयोगकर्ता नाम; स्थिरांक पासवर्ड = req.body.password; स्थिरांक क्वेरी = 'चुनें * उन उपयोगकर्ताओं से जहां उपयोगकर्ता नाम = ? और पासवर्ड = ?'; db.execute(क्वेरी, [उपयोगकर्ता नाम, पासवर्ड], (त्रुटि, परिणाम) => { यदि (त्रुटि) त्रुटि फेंको; यदि (परिणाम.लंबाई > 0) { res.send('लॉगिन सफल'); } अन्य { res.send('अमान्य क्रेडेंशियल'); } });});ऐप.सुनें(3000, () => { कंसोल.लॉग ('सर्वर पोर्ट 3000 पर चल रहा है');});
निष्कर्ष:

आपके वेब एप्लिकेशन की सुरक्षा बनाए रखने के लिए जावास्क्रिप्ट इंजेक्शन हमलों का पता लगाना और उन्हें रोकना महत्वपूर्ण है। इस ब्लॉग में चर्चा की गई तकनीकों को लागू करके, आप ऐसे हमलों के जोखिम को काफी कम कर सकते हैं। सभी उपयोगकर्ता इनपुट को मान्य और स्वच्छ करना, सीएसपी, HTTP-केवल कुकीज़ का उपयोग करना और एसआरआई का उपयोग करके जावास्क्रिप्ट क्षमताओं को सीमित करना याद रखें।

उन्नत जावास्क्रिप्ट विषयों और वेब सुरक्षा पर अधिक ब्लॉगों के लिए बने रहें। बेझिझक नीचे टिप्पणी में अपने विचार और अनुभव साझा करें। साथ मिलकर, हम अधिक सुरक्षित वेब एप्लिकेशन बना सकते हैं!

","image":"http://www.luping.net/uploads/20240801/172248888466ab183485a83.jpg","datePublished":"2024-08-01T13:08:03+08:00","dateModified":"2024-08-01T13:08:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"

जावास्क्रिप्ट इंजेक्शन हमलों का पता लगाने और उन्हें रोकने के लिए उन्नत तकनीकें

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

Advanced Techniques for Detecting and Preventing JavaScript Injection Attacks

परिचय:

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

जावास्क्रिप्ट इंजेक्शन क्या है?

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

जावास्क्रिप्ट इंजेक्शन हमलों के सामान्य प्रकार:

1. क्रॉस-साइट स्क्रिप्टिंग (XSS): अन्य उपयोगकर्ताओं द्वारा देखे गए वेब पेजों में दुर्भावनापूर्ण स्क्रिप्ट इंजेक्ट करना।
2. DOM-आधारित XSS: दुर्भावनापूर्ण जावास्क्रिप्ट को निष्पादित करने के लिए DOM वातावरण में हेरफेर करना।
3. SQL इंजेक्शन: SQL कमांड को इंजेक्ट करना जो डेटाबेस पर मनमानी क्वेरी निष्पादित कर सकता है।

जावास्क्रिप्ट इंजेक्शन हमलों का पता लगाना:

1. इनपुट सत्यापन:

  • क्लाइंट और सर्वर दोनों पक्षों पर सभी उपयोगकर्ता इनपुट को मान्य करें।
  • यह सुनिश्चित करने के लिए नियमित अभिव्यक्तियों का उपयोग करें कि इनपुट अपेक्षित प्रारूपों को पूरा करते हैं।
function validateInput(input) {
    const regex = /^[a-zA-Z0-9_]*$/; // Example regex for alphanumeric and underscore
    return regex.test(input);
}

const userInput = document.getElementById('user-input').value;
if (!validateInput(userInput)) {
    alert('Invalid input');
}

2. सामग्री सुरक्षा नीति (सीएसपी):

उन स्रोतों को नियंत्रित करने के लिए सीएसपी लागू करें जिनसे जावास्क्रिप्ट लोड और निष्पादित किया जा सकता है।

3. उपयोगकर्ता इनपुट से बचना:

दुर्भावनापूर्ण स्क्रिप्ट के निष्पादन को रोकने के लिए सभी उपयोगकर्ता इनपुट से बचें।

function escapeHTML(input) {
    const div = document.createElement('div');
    div.appendChild(document.createTextNode(input));
    return div.innerHTML;
}

const safeInput = escapeHTML(userInput);
document.getElementById('output').innerHTML = safeInput;

जावास्क्रिप्ट इंजेक्शन हमलों को रोकना:

1. तैयार विवरण का उपयोग करें:

एसक्यूएल प्रश्नों के लिए, एसक्यूएल इंजेक्शन से बचने के लिए तैयार कथनों का उपयोग करें।

const query = 'SELECT * FROM users WHERE username = ?';
db.execute(query, [username], (err, results) => {
    // Handle results
});

2. उपयोगकर्ता इनपुट को स्वच्छ करें:

HTML को साफ करने और XSS हमलों को रोकने के लिए DOMPurify जैसी लाइब्रेरी का उपयोग करें।

const cleanInput = DOMPurify.sanitize(userInput);
document.getElementById('output').innerHTML = cleanInput;

HTTP-केवल कुकीज़:

जावास्क्रिप्ट के माध्यम से कुकीज़ तक पहुंच को रोकने के लिए HTTP-केवल कुकीज़ का उपयोग करें।

document.cookie = "sessionId=abc123; HttpOnly";

4. जावास्क्रिप्ट क्षमताओं को सीमित करें:

यह सुनिश्चित करने के लिए कि केवल विश्वसनीय स्क्रिप्ट निष्पादित की जाती हैं, सबरिसोर्स इंटीग्रिटी (एसआरआई) जैसी सुविधाओं का उपयोग करें।

[और&&]
उदाहरण:

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

एचटीएमएल:

पासवर्ड:लेबल> लॉगिनबटन> रूप>
जावास्क्रिप्ट:

document.getElementById('लॉगिन-फॉर्म').addEventListener('submit', function(event) { स्थिरांक उपयोगकर्ता नाम = document.getElementById('उपयोगकर्ता नाम').मूल्य; स्थिरांक पासवर्ड = document.getElementById('password').value; यदि (!validateInput(उपयोगकर्ता नाम) || !validateInput(password)) { चेतावनी('अमान्य इनपुट'); इवेंट.preventDefault(); } }); फ़ंक्शन वैलिडेटइनपुट(इनपुट) { स्थिरांक regex = /^[a-zA-Z0-9_]*$/; वापसी regex.test(इनपुट); }
सर्वर-साइड (Node.js उदाहरण):

const Express = require('express'); कॉन्स्ट ऐप = एक्सप्रेस(); स्थिरांक bodyParser = आवश्यकता('बॉडी-पार्सर'); const mysql = आवश्यकता('mysql'); स्थिरांक db = mysql.createConnection({ होस्ट: 'लोकलहोस्ट', उपयोगकर्ता: 'रूट', पासवर्ड: '', डेटाबेस: 'परीक्षण' }); ऐप.यूज़(बॉडीपार्सर.urlencoded({विस्तारित: सत्य })); ऐप.पोस्ट('/लॉगिन', (req, res) => { स्थिरांक उपयोगकर्ता नाम = req.body.उपयोगकर्ता नाम; स्थिरांक पासवर्ड = req.body.password; स्थिरांक क्वेरी = 'चुनें * उन उपयोगकर्ताओं से जहां उपयोगकर्ता नाम = ? और पासवर्ड = ?'; db.execute(क्वेरी, [उपयोगकर्ता नाम, पासवर्ड], (त्रुटि, परिणाम) => { यदि (त्रुटि) त्रुटि फेंको; यदि (परिणाम.लंबाई > 0) { res.send('लॉगिन सफल'); } अन्य { res.send('अमान्य क्रेडेंशियल'); } }); }); ऐप.सुनें(3000, () => { कंसोल.लॉग ('सर्वर पोर्ट 3000 पर चल रहा है'); });
निष्कर्ष:

आपके वेब एप्लिकेशन की सुरक्षा बनाए रखने के लिए जावास्क्रिप्ट इंजेक्शन हमलों का पता लगाना और उन्हें रोकना महत्वपूर्ण है। इस ब्लॉग में चर्चा की गई तकनीकों को लागू करके, आप ऐसे हमलों के जोखिम को काफी कम कर सकते हैं। सभी उपयोगकर्ता इनपुट को मान्य और स्वच्छ करना, सीएसपी, HTTP-केवल कुकीज़ का उपयोग करना और एसआरआई का उपयोग करके जावास्क्रिप्ट क्षमताओं को सीमित करना याद रखें।

उन्नत जावास्क्रिप्ट विषयों और वेब सुरक्षा पर अधिक ब्लॉगों के लिए बने रहें। बेझिझक नीचे टिप्पणी में अपने विचार और अनुभव साझा करें। साथ मिलकर, हम अधिक सुरक्षित वेब एप्लिकेशन बना सकते हैं!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/rigalpatel001/advanced-techniques-for-detecting-and-preventing-javascript-injection-attacks-4n61?1 यदि कोई उल्लंघन है, तो कृपया [email protected] पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3