मुख्य सामग्री पर जाएं
सुरक्षित ऐप बनाना आपके उपयोगकर्ताओं और X प्लेटफ़ॉर्म, दोनों की सुरक्षा करता है। यह मार्गदर्शिका X API डेवलपर्स के लिए आवश्यक सुरक्षा प्रथाओं के बारे में बताती है।

मुख्य आवश्यकताएँ

TLS आवश्यक है

सभी API अनुरोधों के लिए HTTPS का उपयोग करना अनिवार्य है। सादा HTTP अस्वीकार किया जाता है।

क्रेडेंशियल सुरक्षा

API कुंजियों या टोकनों को कभी भी क्लाइंट-साइड कोड, लॉग या रिपॉज़िटरी में उजागर न करें।

क्रेडेंशियल्स की सुरक्षा

आपकी API कुंजी और टोकन आपके ऐप की चाबियाँ हैं। इन्हें सुरक्षित रखें:
1

परिवेश चर का उपयोग करें

क्रेडेंशियल्स को code में नहीं, परिवेश चर में स्टोर करें。
export X_API_KEY="your-api-key"
export X_API_SECRET="your-api-secret"
2

secrets को कभी commit न करें

क्रेडेंशियल फ़ाइलों को .gitignore में जोड़ें। गलती से commit होने से रोकने के लिए git-secrets जैसे tools का उपयोग करें।
3

नियमित रूप से बदलें

keys को समय-समय पर फिर से जनरेट करें, और अगर आपको इनके compromise होने का संदेह हो, तो तुरंत ऐसा करें।
4

न्यूनतम permissions का उपयोग करें

केवल उन्हीं OAuth स्कोप का अनुरोध करें जिनकी आपके ऐप को वास्तव में ज़रूरत है।

यदि क्रेडेंशियल्स से समझौता हो गया हो

  1. डेवलपर कंसोल में तुरंत दोबारा जनरेट करें
  2. पुराने टोकन रद्द करें — दोबारा जनरेट करने से पुराने क्रेडेंशियल्स अपने-आप अमान्य हो जाते हैं
  3. उपयोग का ऑडिट करें — अनधिकृत API गतिविधि की जांच करें
  4. अपने ऐप को अपडेट करें — नए क्रेडेंशियल्स को सभी परिवेशों में लागू करें

एप्लिकेशन सुरक्षा

इनपुट सत्यापन

उपयोगकर्ता से मिले इनपुट पर कभी भरोसा न करें। किसी भी डेटा का उपयोग करने से पहले उसका सत्यापन करें और उसे साफ़ करें:
# गलत - इंजेक्शन के प्रति संवेदनशील
query = f"from:{user_input}"

# सही - पहले इनपुट को सत्यापित करें
import re
if re.match(r'^[a-zA-Z0-9_]{1,15}$', user_input):
    query = f"from:{user_input}"

आउटपुट एन्कोडिंग

XSS से बचाव के लिए, HTML में दिखाने से पहले X API डेटा को एस्केप करें:
// गलत - XSS के प्रति संवेदनशील
element.innerHTML = tweet.text;

// सही - HTML एस्केप करें
element.textContent = tweet.text;

बचाव के लिए सामान्य कमजोरियाँ

कमजोरीरोकथाम
XSSरेंडर करने से पहले सभी उपयोगकर्ता-जनित सामग्री को एस्केप करें
CSRFफ़ॉर्म में anti-CSRF टोकन का उपयोग करें; OAuth state पैरामीटर को सत्यापित करें
SQL Injectionपैरामीटरयुक्त क्वेरी का उपयोग करें, उपयोगकर्ता इनपुट को कभी सीधे न जोड़ें
Open redirectsकॉलबैक URL को केवल allowlist के अनुसार सत्यापित करें

OAuth सुरक्षा

State पैरामीटर

CSRF से बचाव के लिए OAuth फ़्लो में हमेशा state पैरामीटर का उपयोग करें:
import secrets

# प्राधिकरण से पहले state उत्पन्न करें
state = secrets.token_urlsafe(32)
session['oauth_state'] = state

# कॉलबैक के बाद state सत्यापित करें
if request.args.get('state') != session.get('oauth_state'):
    abort(403)  # State मेल नहीं खाता - संभावित CSRF

टोकन संग्रहण

टोकन प्रकारसंग्रहण संबंधी अनुशंसा
एक्सेस टोकनएन्क्रिप्टेड डेटाबेस या सुरक्षित वॉल्ट
रिफ्रेश टोकनअतिरिक्त अभिगम नियंत्रणों के साथ एन्क्रिप्टेड डेटाबेस
बेयरर टोकनपरिवेश चर या सुरक्षित कॉन्फ़िगरेशन

सुरक्षित विकास पद्धतियाँ

सुरक्षा ऑडिट

नियमित रूप से सुरक्षा समीक्षा और पेनेट्रेशन टेस्टिंग करें।

डिपेंडेंसी स्कैनिंग

डिपेंडेंसी को अपडेट रखें। कमजोर पैकेजों का पता लगाने के लिए टूल का उपयोग करें।

लॉगिंग

सुरक्षा घटनाओं को लॉग करें, लेकिन क्रेडेंशियल या संवेदनशील डेटा को कभी लॉग न करें।

निगरानी

API उपयोग के असामान्य पैटर्न के लिए अलर्ट सेट करें।

सुरक्षा समस्याओं की रिपोर्ट करना

यदि आपको X को प्रभावित करने वाली कोई सुरक्षा भेद्यता मिलती है:
48 घंटे के भीतर रिपोर्ट करें। X Developer Platform के उपयोगकर्ताओं को किसी सुरक्षा घटना की आशंका होने पर 48 घंटे के भीतर X को सूचित करना चाहिए।

X Bug Bounty

HackerOne के माध्यम से X की प्रणालियों में मौजूद भेद्यताओं की रिपोर्ट करें।

आपके ऐप में घटना

यदि X डेटा का उपयोग करने वाले आपके ऐप से समझौता हो गया है, तो उसी चैनल के माध्यम से रिपोर्ट करें।

अनुपालन चेकलिस्ट

  • सभी API अनुरोध TLS/HTTPS का उपयोग करते हैं
  • क्रेडेंशियल सुरक्षित रूप से संग्रहीत हैं (कोड या लॉग में नहीं)
  • उपयोगकर्ता टोकन संग्रहित अवस्था में एन्क्रिप्ट किए गए हैं
  • उपयोगकर्ता द्वारा दिए गए सभी डेटा का इनपुट सत्यापन
  • XSS को रोकने के लिए आउटपुट एन्कोडिंग
  • OAuth फ़्लो पर CSRF सुरक्षा
  • सुरक्षा लॉगिंग सक्षम है (संवेदनशील डेटा के बिना)
  • घटना-रिस्पॉन्स योजना प्रलेखित है
  • डिपेंडेंसी नियमित रूप से अपडेट की जाती हैं
  • न्यूनतम OAuth स्कोप का अनुरोध किया गया है

संसाधन

प्रमाणीकरण मार्गदर्शिका

OAuth को सही तरीके से लागू करें।

ऐप अनुमतियाँ

आवश्यक न्यूनतम अनुमतियाँ कॉन्फ़िगर करें।