> ## Documentation Index
> Fetch the complete documentation index at: https://generaltranslation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# सुरक्षा

> X API डेवलपर्स के लिए सुरक्षा संबंधी सर्वोत्तम प्रथाएँ

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

***

<div id="core-requirements">
  ## मुख्य आवश्यकताएँ
</div>

<CardGroup cols={2}>
  <Card title="TLS आवश्यक है" icon="lock">
    सभी API अनुरोधों के लिए HTTPS का उपयोग करना अनिवार्य है। सादा HTTP अस्वीकार किया जाता है।
  </Card>

  <Card title="क्रेडेंशियल सुरक्षा" icon="key">
    API कुंजियों या टोकनों को कभी भी क्लाइंट-साइड कोड, लॉग या रिपॉज़िटरी में उजागर न करें।
  </Card>
</CardGroup>

***

<div id="protecting-credentials">
  ## क्रेडेंशियल्स की सुरक्षा
</div>

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

<Steps>
  <Step title="परिवेश चर का उपयोग करें">
    क्रेडेंशियल्स को code में नहीं, परिवेश चर में स्टोर करें。

    ```bash theme={null}
    export X_API_KEY="your-api-key"
    export X_API_SECRET="your-api-secret"
    ```
  </Step>

  <Step title="secrets को कभी commit न करें">
    क्रेडेंशियल फ़ाइलों को `.gitignore` में जोड़ें। गलती से commit होने से रोकने के लिए `git-secrets` जैसे tools का उपयोग करें।
  </Step>

  <Step title="नियमित रूप से बदलें">
    keys को समय-समय पर फिर से जनरेट करें, और अगर आपको इनके compromise होने का संदेह हो, तो तुरंत ऐसा करें।
  </Step>

  <Step title="न्यूनतम permissions का उपयोग करें">
    केवल उन्हीं OAuth स्कोप का अनुरोध करें जिनकी आपके ऐप को वास्तव में ज़रूरत है।
  </Step>
</Steps>

<div id="if-credentials-are-compromised">
  ### यदि क्रेडेंशियल्स से समझौता हो गया हो
</div>

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

***

<div id="application-security">
  ## एप्लिकेशन सुरक्षा
</div>

<div id="input-validation">
  ### इनपुट सत्यापन
</div>

उपयोगकर्ता से मिले इनपुट पर कभी भरोसा न करें। किसी भी डेटा का उपयोग करने से पहले उसका सत्यापन करें और उसे साफ़ करें:

```python theme={null}
# गलत - इंजेक्शन के प्रति संवेदनशील
query = f"from:{user_input}"

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

<div id="output-encoding">
  ### आउटपुट एन्कोडिंग
</div>

XSS से बचाव के लिए, HTML में दिखाने से पहले X API डेटा को एस्केप करें:

```javascript theme={null}
// गलत - XSS के प्रति संवेदनशील
element.innerHTML = tweet.text;

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

<div id="common-vulnerabilities-to-prevent">
  ### बचाव के लिए सामान्य कमजोरियाँ
</div>

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

***

<div id="oauth-security">
  ## OAuth सुरक्षा
</div>

<div id="state-parameter">
  ### State पैरामीटर
</div>

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

```python theme={null}
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
```

<div id="token-storage">
  ### टोकन संग्रहण
</div>

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

***

<div id="secure-development-practices">
  ## सुरक्षित विकास पद्धतियाँ
</div>

<CardGroup cols={2}>
  <Card title="सुरक्षा ऑडिट" icon="magnifying-glass">
    नियमित रूप से सुरक्षा समीक्षा और पेनेट्रेशन टेस्टिंग करें।
  </Card>

  <Card title="डिपेंडेंसी स्कैनिंग" icon="box">
    डिपेंडेंसी को अपडेट रखें। कमजोर पैकेजों का पता लगाने के लिए टूल का उपयोग करें।
  </Card>

  <Card title="लॉगिंग" icon="file-lines">
    सुरक्षा घटनाओं को लॉग करें, लेकिन क्रेडेंशियल या संवेदनशील डेटा को कभी लॉग न करें।
  </Card>

  <Card title="निगरानी" icon="chart-line">
    API उपयोग के असामान्य पैटर्न के लिए अलर्ट सेट करें।
  </Card>
</CardGroup>

***

<div id="reporting-security-issues">
  ## सुरक्षा समस्याओं की रिपोर्ट करना
</div>

यदि आपको X को प्रभावित करने वाली कोई सुरक्षा भेद्यता मिलती है:

<Warning>
  **48 घंटे के भीतर रिपोर्ट करें।** X Developer Platform के उपयोगकर्ताओं को किसी सुरक्षा घटना की आशंका होने पर 48 घंटे के भीतर X को सूचित करना चाहिए।
</Warning>

<CardGroup cols={2}>
  <Card title="X Bug Bounty" icon="bug" href="https://hackerone.com/twitter">
    HackerOne के माध्यम से X की प्रणालियों में मौजूद भेद्यताओं की रिपोर्ट करें।
  </Card>

  <Card title="आपके ऐप में घटना" icon="triangle-exclamation" href="https://hackerone.com/twitter">
    यदि X डेटा का उपयोग करने वाले आपके ऐप से समझौता हो गया है, तो उसी चैनल के माध्यम से रिपोर्ट करें।
  </Card>
</CardGroup>

***

<div id="compliance-checklist">
  ## अनुपालन चेकलिस्ट
</div>

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

***

<div id="resources">
  ## संसाधन
</div>

<CardGroup cols={2}>
  <Card title="प्रमाणीकरण मार्गदर्शिका" icon="key" href="/hi/resources/fundamentals/authentication/overview">
    OAuth को सही तरीके से लागू करें।
  </Card>

  <Card title="ऐप अनुमतियाँ" icon="shield-check" href="/hi/resources/fundamentals/developer-apps#app-permissions">
    आवश्यक न्यूनतम अनुमतियाँ कॉन्फ़िगर करें।
  </Card>
</CardGroup>
