- TL;DR : API कॉल्स को HTTP से HTTPS पर रीडायरेक्ट करने के बजाय उन्हें fail करना चाहिए। HTTP को पूरी तरह disable करें या साफ़ HTTP error response लौटाएँ, और unencrypted connection पर भेजी गई API keys को revoke करें। दुर्भाग्य से, आज कई प्रसिद्ध API providers ऐसा नहीं करते।
पृष्ठभूमि
- जब web browser किसी HTTP URL पर जाता है, तो service अक्सर उस request को HTTPS page पर redirect कर देती है।
- शुरुआती HTTP traffic encrypted नहीं होता, इसलिए यह network man-in-the-middle (MITM) attacks के लिए vulnerable होता है।
- HSTS (HTTP Strict Transport Security) जैसी technologies लाई गईं, जिससे security मज़बूत हुई।
एक साधारण टाइपो का जोखिम
- काम के दौरान third-party API integration करते समय API base URL को
https:// की जगह http:// लिख दिया गया।
- Node.js का
fetch चुपचाप HTTPS redirect को follow कर गया।
- API key plain text में transmit हो गई, जिससे security risk पैदा हो सकता था।
- code review के दौरान यह गलती पकड़ी गई और समस्या ठीक की गई।
fail fast सिद्धांत
- अगर API, HTTP requests को HTTPS पर redirect करती है, तो इस तरह का typo आसानी से छूट सकता है।
- fail fast principle अपनाना बेहतर है: unencrypted API calls को स्पष्ट रूप से fail होना चाहिए।
- API server का HTTP interface disable करना, या HTTP requests पर error message लौटाना बेहतर है।
अन्य APIs के उदाहरण
- कई प्रसिद्ध APIs HTTP requests पर 403 error message लौटाती हैं या HTTP interface disable कर देती हैं।
- लेकिन कुछ APIs अब भी HTTP से HTTPS पर redirect करती हैं।
best practices की ज़रूरत
- user-facing applications में HTTP से HTTPS redirect आम बात है।
- लेकिन APIs के मामले में, HTTP से HTTPS पर redirect करना उल्टा हानिकारक हो सकता है।
- OWASP जैसे security projects से APIs के लिए स्पष्ट guidelines की ज़रूरत है।
निष्कर्ष
- APIs को HTTP से HTTPS पर redirect करने के बजाय, unencrypted requests को स्पष्ट रूप से fail करना चाहिए।
- अगर API keys unencrypted connection के ज़रिए भेजी जाएँ, तो उन्हें तुरंत revoke कर देना चाहिए।
- API security best practices को update करके स्पष्ट guidance देने की ज़रूरत है।
GN⁺ की राय
- security मज़बूत करने की ज़रूरत: API security बहुत महत्वपूर्ण है, और HTTP से HTTPS redirect security vulnerabilities पैदा कर सकता है।
- fail fast सिद्धांत: development के शुरुआती चरण में errors पकड़ने और ठीक करने के लिए fail fast principle अपनाना महत्वपूर्ण है।
- best practices update: OWASP जैसे security projects को API security पर स्पष्ट guidelines देनी चाहिए।
- automated key revocation: unencrypted connection के ज़रिए भेजी गई API keys अपने-आप revoke होनी चाहिए।
- अन्य APIs के उदाहरणों से सीख: दूसरे APIs के security practices को देखकर अपनी API security मज़बूत करने की ज़रूरत है।
5 टिप्पणियां
लगता है यह ऐसा क्षेत्र है जिसे कानून के जरिए रेगुलेट किया जाना चाहिए।
फिलहाल, नोट... API में https redirect पर रोक
तकनीकी रूप से यह बात सही है
लेकिन ज़्यादातर enterprise clients के लिए security policy के तहत यह गाइडलाइन होती है कि http access होने पर हमेशा https पर redirect भेजा जाए।
साथ ही वे अपनी साइट इस्तेमाल करने वाले ग्राहकों को error screen दिखाना भी पसंद नहीं करते, इसलिए अगर आप अपनी खुद की service नहीं चला रहे हैं, तो supplier की स्थिति में यह कुछ दूर की बात जैसा है..
अरे, AI ने ऐसी गलती कर दी, हाहा, उसे ठीक कर दिया है।
Hacker News राय