English | 繁中版 | 简中版 | العربية | Azərbaycan | Български | বাংলা | Català | Čeština | Deutsch | Ελληνικά | Español | فارسی | Français | हिंदी | Indonesia | Italiano | 日本語 | 한국어 | ພາສາລາວ | Македонски | മലയാളം | Nederlands | Polski | Português (Brasil) | Русский | ไทย | Türkçe | Українська | Tiếng Việt
API гаргах, загварчлах, тестлэхэд аюулгүйн талаас авах сөрөг арга хэмжээний жагсаалт.
-
Basic Authбүү ашигла, Стандарт authentication ашигла. -
Authentication-ынtoken generation,password storageзэргийг бүү дахин шинээр хий, стандарт ашигла. - Нэвтрэх(Login) үед
Max Retryашиглан хорилт хий. - Чухал өгөгдлүүдийг encrupt хий.
- Хүсэлтийн тоог хязгаарлаж (Throttling) DDoS / brute-force дайралтаас хамгаална.
- HTTPS ашиглаж сервер талдаа MITM (Man In The Middle Attack) дайралтаас хамгаална.
-
HSTSheader -ыг SSL дээр ашиглаж SSL Strip дайралтаас хамгаална. - Лавлах жагсаалтыг унтраа.
- Хувийн API-уудын хувьд зөвхөн зөвшөөрөгдсөн жагсаалтад орсон IP/хостоос хандахыг зөвшөөрнө үү.
-
redirect_uri-ыг үргэлж сервер талд шалган зөвшөөрөгдсөн URL эсэхийг шалга. - Аль болох токен биш код солилц (
response_type=token-ыг зөвшөөрч болохгүй). - OAuth authentication -ын үед
stateпараметрийг санамсаргүй үүссэн hash ашиглан CSRF ээс сэргийлнэ. - Хувьсагчид анхны утга заавал оноож өг, утгыг байнга шалга.
- Яг зөв HTTP хүсэлтийг ашигла:
GET (унших),POST (үүсгэх),PUT/PATCH (орлуулах/солих), мөнDELETE (устгах), бас405 Method Not Allowed-ыг хүсэлтийн төрөл тодорхойгүй үед ашигла. -
content-type-ыг хүсэлтийн header (Content Negotiation) дээр шалгаж зөвхөн дэмжигдсэн төрлийг зөвшөөр (Жнь.application/xml,application/json, гэх мэт) бас төрөл нь таарахгүй бол406 Not Acceptableхариу буцаа. -
content-type-ыг post хийх өгөгдөл дээр шалга (Жнь.application/x-www-form-urlencoded,multipart/form-data,application/json, г.м). - Хэрэглэгчээс гараас оруулсан утгыг шалгаж түгээмэл нүхнүүдээс сэргийлнэ. (Жнь.
XSS,SQL-Injection,Remote Code Execution, г.м). - Чухал өгөгдлүүдийг (
credentials,Passwords,security tokens, эсвэлAPI keys) URL ээр бүү явуул, оронд нь стандарт Authorization header ашигла. - Зөвхөн сервер талын шифрлэлтийг ашиглана уу.
- API Gateway үйлчилгээ ашиглан Rate Limit Policies (Жнь.
Quota,Spike Arrest,Concurrent Rate Limit) болон cache хийх, мөн API deploy хийхэд ашигла.
- Нэвтрэх явцад алдаа гарахаас сэргийлж бүх endpoint -уудыг нэвтрэх шаардлагатай эсэхийг шалгах.
- Хэрэглэгчийн ID ашиглахаас зайлсхийх.
/user/654321/ordersүүний оронд/me/ordersашиглах. - Автоматаар нэмэгдэх ID бүү ашигла.
UUIDашигла. - XML файл parse хийх үед entity parse бүү хий ингэснээр
XXE(XML external entity attack) -аас сэргийлнэ. - XML файл parse хийх үед entity expansion бүү хий ингэснэр
Billion Laughs/XML bombдайралтаас сэргийлнэ. - Файл upload хийхэд CDN ашигла.
- Их хэмжээний өгөгдөлтэй ажиллах үед Workers болон Queue ашиглан үйлдлийг аль болох background -д ажиллуулж хариуг хурдан явуулах нь HTTP Blocking -оос сэргийлнэ.
- DEBUG горимыг унтраах.
- Боломжтой үед гүйцэтгэх боломжгүй stack ашигла.
-
X-Content-Type-Options: nosniffheader дээр явуул. -
X-Frame-Options: denyheader дээр явуул. -
Content-Security-Policy: default-src 'none'header дээр явуул. - Ул мөр үлдээх
X-Powered-By,Server,X-AspNet-Versionheader үүдыг устга. -
content-type-ыг хүсэлтийн хариуд нь харгалзан буцаах, Хэрвээapplication/jsonхүсэлт явсан бол хариуд ньcontent-typeньapplication/jsonбайх. - Do not return overly specific error messages to the client that could reveal implementation details, use generic messages instead, and log detailed information only on the server side.
- Чухал өгөгдлүүд
credentials,Passwords,security tokensбүү буцаа. - Тухайн ажилд тохирсон статус код илгээх. (Жнь.
200 OK,400 Bad Request,401 Unauthorized,405 Method Not Allowed, г.м).
- unit/integration тест ашиглан системийн загварчлал, хэрэгжилтийг шалгах.
- Код шалгалт ашигла, мөн өөрөө өөрийгөө ч шалга.
- Бүх тусдаа хэсгүүд бүр vendor сан, бусад нэмэлт сангууд бүгдийг нь AV програмаар статикаар шалга.
- Код дээрээ аюулгүй байдлын тестийг (статик/динамик анализ) тасралтгүй ажиллуул.
- Мэдэгдэж буй сул талуудыг өөрийн хамаарлыг (програм хангамж болон үйлдлийн систем) шалгана уу.
- Ямар ч үед deploy хийхэд амар шийдэл гаргах.
- Use centralized logins for all services and components.
- Use agents to monitor all traffic, errors, requests, and responses.
- Use alerts for SMS, Slack, Email, Telegram, Kibana, Cloudwatch, etc.
- Ensure that you aren't logging any sensitive data like credit cards, passwords, PINs, etc.
- Use an IDS and/or IPS system to monitor your API requests and instances.
- yosriady/api-development-tools - RESTful HTTP+JSON API-г бүтээхэд хэрэгтэй нөөцүүдийн цуглуулга.
- You don't need JWT, just use a randomly generated API key. If you need asymmetric encryption or tamper prevention, here are some alternatives to JWT.
- Implement sliding window rate limiting per API key and IP.
- Use exponential backoff for repeated failed authentication attempts.
- Implement CAPTCHA or proof-of-work challenges after suspicious activity.
- Monitor and alert on unusual API usage patterns (time, volume, endpoints).
- Disable introspection in production environments.
- Implement query depth limiting to prevent nested query attacks.
- Use query cost analysis to prevent resource exhaustion.
- Whitelist allowed queries in production when possible.
- Rotate API keys and secrets on a regular schedule.
- Use hardware security modules (HSM) for signing operations.
- Implement secret scanning in CI/CD pipelines.
- Never commit secrets to version control - use environment variables or secret managers.
- Implement mutual TLS (mTLS) for service-to-service communication.
- Validate all requests even from internal services.
- Use short-lived tokens with automatic refresh.
- Implement request signing for sensitive operations.
Энэ рэпод оролцох бол fork хийж өөрчлөлтөө оруулаад pull request үүсгэнэ үү. Асуулт байвал бидэнтэй холбогдоорой team@shieldfy.io.