वेब एप्लिकेशन सुरक्षा को समझने के लिए पहले यह जानना ज़रूरी है कि ब्राउज़र कैसे काम करता है। आख़िरकार, आपके अधिकांश उपयोगकर्ता आपके एप्लिकेशन से ब्राउज़र के ज़रिए ही इंटरैक्ट करते हैं।
ब्राउज़र एक रेंडरिंग इंजन है
इसका काम है URL से डॉक्यूमेंट डाउनलोड करना और उसे मानव-पठनीय रूप में प्रस्तुत करना। यह सरलीकरण लग सकता है, लेकिन सुरक्षा की बुनियादी समझ के लिए यही काफ़ी है।
ब्राउज़र के मुख्य चरण
- DNS रिज़ॉल्यूशन: ब्राउज़र DNS सर्वर से पूछता है कि
google.comका IP पता क्या है (उदाहरण:216.58.207.110)। - HTTP एक्सचेंज: TCP कनेक्शन स्थापित करके ब्राउज़र HTTP रिक्वेस्ट भेजता है और सर्वर रिस्पॉन्स लौटाता है।
- रेंडरिंग: सर्वर से मिले HTML/CSS/JS को पार्स करके विज़ुअल पेज बनाता है।
- दोहराव: उपयोगकर्ता के हर क्लिक/नेविगेशन पर यही चक्र चलता है।
HTTP रिक्वेस्ट उदाहरण
GET / HTTP/1.1
Host: google.com
Accept: */*
GET / HTTP/1.1— रूट डॉक्यूमेंट मांगता है, प्रोटोकॉल HTTP/1.1Host: google.com— HTTP/1.1 में अनिवार्य हेडर, ताकि सर्वर सही डोमेन पहचानेAccept: */*— ब्राउज़र किसी भी फॉर्मैट (HTML, JSON, XML) में रिस्पॉन्स स्वीकार करेगा
HTTP रिस्पॉन्स उदाहरण
HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Set-Cookie: NID=1234; expires=...; HttpOnly
<!doctype html><html>...</html>
स्टेटस कोड 200 OK सफलता दर्शाता है। हेडर्स में सर्वर जानकारी, सुरक्षा नीतियां (X-XSS-Protection, X-Frame-Options), कुकीज़ आदि शामिल होती हैं। बॉडी में Content-Type के अनुसार HTML मार्कअप होता है जिसे ब्राउज़र रेंडर करता है।
रेंडरिंग प्रक्रिया
ब्राउज़र HTML पार्स करता है, लिंक्ड CSS/JS/इमेजेस डाउनलोड करता है, DOM ट्री बनाता है, लेआउट कैलकुलेट करता है और पिक्सल्स स्क्रीन पर पेंट करता है—यह सब मिलीसेकंड्स में।
ब्राउज़र वेंडर्स और वेब स्टैंडर्ड्स
- Chrome — Google
- Firefox — Mozilla
- Safari — Apple
- Edge — Microsoft
वेंडर्स W3C के ज़रिए वेब स्टैंडर्ड्स विकसित करते हैं, लेकिन कई बार एक वेंडर की फ़ीचर बाद में स्टैंडर्ड बन जाती है। उदाहरण: Chrome 51 ने SameSite कुकीज़ पेश कीं CSRF रोकने के लिए; अन्य वेंडर्स ने अपनाया, लेकिन Safari ने देर से समर्थन जोड़ा। सबक: एक ब्राउज़र में पैच का अर्थ सभी उपयोगकर्ताओं की सुरक्षा नहीं। आपकी सुरक्षा रणनीति हर प्रमुख ब्राउज़र की क्षमताओं के अनुसार होनी चाहिए।
ब्राउज़र बग बाउंटी
ब्राउज़र स्वयं में कमजोरियां हो सकती हैं। वेंडर्स (Google, Mozilla, Apple, Microsoft) बग बाउंटी प्रोग्राम चलाते हैं जहां शोधकर्ता वल्नरेबिलिटी रिपोर्ट करके इनाम पाते हैं। इससे ब्राउज़र सुरक्षा लगातार सुधरती है।
डेवलपर्स के लिए ब्राउज़र: cURL और DevTools
ब्राउज़र मूलतः मनुष्यों के लिए बने HTTP क्लाइंट हैं। डेवलपर्स cURL जैसे टूल्स से सीधे HTTP एक्सचेंज देख सकते हैं:
$ curl -I -v localhost:8080
यही जानकारी ब्राउज़र के DevTools (Network टैब) में भी मिलती है। मोबाइल ऐप जो आपके API से HTTP से बात करता है, वह भी एक प्रकार का "ब्राउज़र" है—बस अत्यधिक कस्टमाइज़्ड।
अगला कदम: HTTP प्रोटोकॉल की गहराई
HTTP एक्सचेंज और रेंडरिंग ही मुख्य अटैक वेक्टर्स हैं। अगले लेख में हम HTTP प्रोटोकॉल, इसके हेडर्स, और उन्हें सुरक्षित करने के उपायों पर विस्तार से चर्चा करेंगे।