- सिक्योरिटी
- OWASP
- चेकलिस्ट
2026 में खोजने लायक टॉप 10 कोड वल्नरेबिलिटीज़
हर code review में जाँचने लायक दस vulnerability classes की प्रैक्टिकल चेकलिस्ट, OWASP Top 10 और CWE से मैप की हुई, हर एक के एक-लाइन fix के साथ।
· 9 मिनट का लेख · Lina Source LLC
ज़्यादातर breaches आज भी कुछ जानी-पहचानी bug classes से ही शुरू होते हैं। Frameworks ज़्यादा सुरक्षित हो गए हैं, लेकिन गलतियाँ अपनी जगह बदल चुकी हैं: API handlers, background jobs, infrastructure code और services को जोड़ने वाले glue code में। हर audit में हम सबसे पहले यही लिस्ट जाँचते हैं, साथ में वह CWE जो आपको CodeAuditAgent रिपोर्ट में दिखेगा।
1. टूटा हुआ access control (CWE-639, CWE-862)
यह अब तक का सबसे आम गंभीर finding है: कोई endpoint ID से record लोड करता है, लेकिन यह चेक नहीं करता कि वह record caller का ही है। Authentication बताता है कि कोई व्यक्ति कौन है; authorization हर एक query पर होना चाहिए।
// Scope every lookup to the owner
const invoice = await db.invoice.findFirst({
where: { id, userId: session.user.id },
});2. Injection (CWE-89, CWE-78)
String जोड़कर बनाए गए SQL, shell commands और template expressions आज भी हर जगह मिलते हैं, अक्सर उसी एक query में जिसे किसी ने performance के लिए हाथ से लिखा था। Query को parameterize करें या arguments को array के रूप में पास करें; input को कभी concatenate न करें।
3. Hardcoded secrets (CWE-798)
Repository में commit की गई API keys, test tokens जो असल में live निकले, config files में पड़ी private keys। इन्हें environment variables या किसी secret manager में ले जाएँ, और जो कुछ भी कभी commit हुआ हो उसे rotate करें: लाइन डिलीट करने से history डिलीट नहीं होती।
4. Server-side request forgery (CWE-918)
कोई भी feature जो user द्वारा दिया गया URL fetch करता है, जैसे webhooks, link previews या imports, उसे आपके internal network या cloud metadata endpoint की ओर मोड़ा जा सकता है। Hosts को allowlist करें, IP को resolve करके चेक करें, और private ranges को block करें।
5. Cross-site scripting (CWE-79)
Modern frameworks डिफ़ॉल्ट रूप से escape करते हैं, इसलिए XSS अब escape hatches में छिपता है: raw HTML props, markdown renderers, और href attributes में रखे गए URLs। HTML को किसी भरोसेमंद library से sanitize करें और javascript: URLs को reject करें।
6. Insecure deserialization और eval (CWE-502, CWE-95)
Pickle, YAML load, Java object streams और dynamic eval डेटा को code में बदल देते हैं। इनकी जगह safe loaders और schema-validated JSON का इस्तेमाल करें।
7. कमज़ोर cryptography (CWE-327, CWE-330)
Passwords के लिए MD5 या SHA-1, static IVs, tokens के लिए Math.random()। इस काम के लिए बने password hash (Argon2id, bcrypt, scrypt) और cryptographically secure random source का इस्तेमाल करें।
8. Open redirects (CWE-601)
कोई भी URL स्वीकार करने वाला next या returnTo parameter आपके domain को phishing के लिए एक भरोसेमंद launchpad बना देता है। सिर्फ़ same-origin relative paths ही स्वीकार करें।
9. Rate limiting का न होना (CWE-307, CWE-770)
Login, password reset, OTP और हर वह endpoint जिस पर आपका पैसा खर्च होता है (email, SMS, AI calls), उन पर per user और per IP limits ज़रूरी हैं। इनके बिना brute force और bill-shock attacks बेहद आसान हो जाते हैं।
10. Security misconfiguration (CWE-16)
Credentials के साथ wildcard CORS, production में debug mode, विस्तृत stack traces, ढीली bucket policies। Code review में ये शायद ही bugs जैसे दिखते हैं क्योंकि ये config में रहते हैं, और ठीक इसी वजह से इन्हें code की तरह review किया जाना चाहिए।
इस लिस्ट का इस्तेमाल कैसे करें
- हर pull request पर classes 1 से 3 चेक करें; इनका impact सबसे ज़्यादा है और ये सबसे आसानी से छूट जाती हैं।
- Infrastructure और CI config को review के दायरे वाले code की तरह ट्रीट करें।
- हर finding पर CWE दर्ज करें ताकि fixes ट्रैक किए जा सकें और trends मापे जा सकें।