# HTTPS, CORS और Input Validation — REST API Design: Resources, Status Codes और Security

Source: https://www.geekswithgeeks.com/hi/restapi/api-https-cors-validation

> हर जगह HTTPS, सही CORS rules और सख्त server-side input validation से API सुरक्षित करें।

## हर जगह HTTPS

हर API को HTTPS पर परोसें। इसके बिना headers या bodies में tokens, API keys और निजी data network पर पढ़े जा सकते हैं। HTTP को HTTPS पर redirect करें और `Strict-Transport-Security` भेजें ताकि browsers कभी downgrade न करें।

## CORS व्यवहार में

Server के opt-in के बिना browsers cross-origin calls block करते हैं। केवल भरोसेमंद origins को अनुमति दें, credentials के साथ कभी `*` नहीं।

```http
HTTP/1.1 200 OK
Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Methods: GET, POST, PATCH, DELETE
Access-Control-Allow-Headers: Authorization, Content-Type
Vary: Origin
```

## Server पर validate करें

Client input पर कभी भरोसा न करें। Schema के अनुसार type, length, range और format validate करें, गलत requests को 400 या 422 से reject करें, और injection रोकने के लिए parameterised queries उपयोग करें।

त्वरित जाँच

**Quiz:** Credentialed requests के साथ कौन-सी CORS setting असुरक्षित है?

- [x] Allow-Origin: *
- [ ] Allow-Origin: एक भरोसेमंद origin
- [ ] Vary: Origin
- [ ] Allow-Headers: Authorization

*Answer:* Allow-Origin: *. Wildcard origin किसी भी site को user के credentials के साथ आपकी API call करने देता है।
