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

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

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

पाठ्यक्रम शुरू करें
Here is the translated HTML content in Hindi, with all HTML tags preserved and only the text content translated as requested. ```html

JavaScript अनुप्रयोगों की सुरक्षा: शीर्ष 10 कमजोरियाँ



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



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

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



// कमजोर कोडapp.get('/search', (req, res) => {    const query = req.query.q;    res.send(`<h2>खोज परिणाम: ${query}</h2>`);});

// सुरक्षित संस्करणconst escapeHtml = (str) => { return str.replace(/&/g, '&amp;') .replace(/</g, '&lt;') .replace(/>/g, '&gt;') .replace(/"/g, '&quot;') .replace(/'/g, '&#039;');};

app.get('/search', (req, res) => { const query = escapeHtml(req.query.q || ''); res.send(`<h2>खोज परिणाम: ${query}</h2>`);});


2. SQL इंजेक्शन

SQL कोड इंजेक्शन तब होता है जब उपयोगकर्ता इनपुट सीधे SQL क्वेरी में जोड़ दिया जाता है। इससे डेटा लीक या डिलीट हो सकता है।



// कमजोर कोडconst userId = req.body.id;const query = `SELECT * FROM users WHERE id = ${userId}`;

// पैरामीटराइज्ड क्वेरी के साथ सुरक्षित संस्करणconst userId = req.body.id;const query = 'SELECT * FROM users WHERE id = ?';db.query(query, [userId], (err, results) => { // परिणामों की प्रक्रिया});


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

Node.js अक्सर JSON.parse() का उपयोग करता है, लेकिन यदि आप अन्य प्रारूपों (जैसे Buffer) के साथ काम करते हैं, तो हमलावर दुर्भावनापूर्ण डेटा डाल सकता है।



// खतरनाक दृष्टिकोणconst data = JSON.parse(req.body.data); // इसमें __proto__ हो सकता है

// सुरक्षित दृष्टिकोणconst safeParse = (json) => { const data = JSON.parse(json); // खतरनाक गुणों को पुनरावर्ती रूप से हटाएं return JSON.parse(JSON.stringify(data));};


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

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



// csurf के साथ सुरक्षा सेट करनाconst csrf = require('csurf');const csrfProtection = csrf({ cookie: true });

app.post('/transfer', csrfProtection, (req, res) => { // सुरक्षित स्थानांतरण प्रक्रिया});


5. असुरक्षित प्रमाणीकरण

कमजोर पासवर्ड, लॉगिन प्रयासों की सीमा का अभाव और पासवर्ड को सादे टेक्स्ट में संग्रहीत करना सामान्य समस्याएं हैं।



// पासवर्ड का सही हैशिंगconst bcrypt = require('bcrypt');

async function createUser(password) { const salt = await bcrypt.genSalt(12); const hash = await bcrypt.hash(password, salt); // DB में hash स्टोर करें}

async function checkPassword(plainPassword, hash) { return await bcrypt.compare(plainPassword, hash);}


6. गोपनीय डेटा का लीक होना

क्लाइंट को एरर स्टैक भेजना या पासवर्ड लॉग करना डेवलपर्स की एक सामान्य गलती है।



// गलतapp.use((err, req, res, next) => {    res.status(500).json({ error: err.stack });});

// सहीapp.use((err, req, res, next) => { console.error(err); // सर्वर पर लॉग करें res.status(500).json({ error: 'सर्वर की आंतरिक त्रुटि' });});


7. असुरक्षित कॉन्फ़िगरेशन

डिफ़ॉल्ट पोर्ट का उपयोग, प्रोडक्शन में डीबग मोड सक्षम होना और कमजोर CORS नीतियां।



// सुरक्षित CORS कॉन्फ़िगरेशनconst cors = require('cors');cons
```                

ब्लॉग

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