Skip to content

Commit f80889d

Browse files
authored
Merge pull request #206 from manylon/master
Added Bulgarian
2 parents f8bade0 + 9097696 commit f80889d

File tree

2 files changed

+101
-1
lines changed

2 files changed

+101
-1
lines changed

README-bg.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
[繁中版](./README-tw.md) | [简中版](./README-zh.md) | [العربية](./README-ar.md) | [Azərbaycan](./README-az.md) | [বাংলা](./README-bn.md) | [Català](./README-ca.md) | [Čeština](./README-cs.md) | [Deutsch](./README-de.md) | [Ελληνικά](./README-el.md) | [Español](./README-es.md) | [فارسی](./README-fa.md) | [Français](./README-fr.md) | [हिंदी](./README-hi.md) | [Indonesia](./README-id.md) | [Italiano](./README-it.md) | [日本語](./README-ja.md) | [한국어](./README-ko.md) | [ພາສາລາວ](./README-lo.md) | [Македонски](./README-mk.md) | [മലയാളം](./README-ml.md) | [Монгол](./README-mn.md) | [Nederlands](./README-nl.md) | [Polski](./README-pl.md) | [Português (Brasil)](./README-pt_BR.md) | [Русский](./README-ru.md) | [ไทย](./README-th.md) | [Türkçe](./README-tr.md) | [Українська](./README-uk.md) | [Tiếng Việt](./README-vi.md) | [Български](./README-bg.md)
2+
3+
# Контролен списък за сигурност на API
4+
5+
Контролен списък с най-важните контрамерки за сигурност при проектиране, тестване и пускане на вашето API.
6+
7+
---
8+
9+
## Удостоверяване
10+
11+
- [ ] Не използвайте `Basic Auth`. Използвайте стандартно удостоверяване ( например: [JWT](https://jwt.io/), OAuth).
12+
- [ ] Не преоткривайте нови начини за `удостоверяване`, `генериране на токени`, `съхранение на пароли`. Придържайте се към стандартите.
13+
- [ ] Използвайте `Max Retry` и jail функции по време на удостоверяване.
14+
- [ ] Използвайте криптиране на всички чувствителни данни.
15+
16+
### JWT (JSON Web Token)
17+
18+
- [ ] Използвайте произволен сложен ключ (`JWT Secret`), за да направите грубото форсиране на токена по- трудно.
19+
- [ ] Не извличайте алгоритъма от заглавката. Принудете алгоритъма в бекенда (`HS256` or `RS256`).
20+
- [ ] Направете токена, така че да изтече (`TTL`, `RTTL`), за възможно най-кратко време.
21+
- [ ] Не съхранявайте чувствителни данни в JWT, те могат да бъдат декодирани [лесно](https://jwt.io/#debugger-io).
22+
- [ ] Избягвайте да съхранявате твърде много данни. JWT обикновено се споделя в заглавки, а те имат ограничение на размера.
23+
24+
## Достъп
25+
26+
- [ ] Задайте ограничение за броя на заявките в минута (Throttling, RPM-Limit), за да избегнете DDoS / Brute Force атаки.
27+
- [ ] Използвайте HTTPS, от страната на сървъра, с TLS 1.2+ и сигурни шифри, за да избегнете MITM (Man in the Middle атака).
28+
- [ ] Използвайте заглавката `HSTS` (HTTP Strict Transport Security) със SSL, за да избегнете SSL Strip атаки.
29+
- [ ] Изключете списъците с директории.
30+
- [ ] За частни API, разрешете достъп само от IP адреси/хостове в белия списък.
31+
32+
## Упълномощаване
33+
34+
### OAuth
35+
36+
- [ ] Винаги проверявайте `redirect_uri`, от страната на сървъра, за да разрешите само URL адреси от белия списък.
37+
- [ ] Винаги се опитвайте да използвате еднократен код вместо токени (не използвайте `response_type=token`).
38+
- [ ] Използвайте параметъра `state` с произволен хеш, за да предотвратите CSRF в процеса на OAuth удостоверяване.
39+
- [ ] Определете обхват по подразбиране и проверете настройките за всяко приложение.
40+
41+
## Заявка
42+
43+
- [ ] Използвайте подходящият HTTP метод според операцията: `GET (четене)`, `POST (създаване)`, `PUT/PATCH (замяна/актуализация)` и `DELETE (изтриване)` и също отговорете с `405 Method Not Allowed` ако заявеният метод не е подходящ за искания ресурс.
44+
- [ ] Валидирайте `типа данни (content-type)` в заглавката `Accept` (Content Negotiation), за да позволите само поддържани формати (например: `application/xml`, `application/json` и т.н.) и отговорете с `406 Not Acceptable`, ако типът не се поддържа.
45+
- [ ] Валидирайте `типа данни (content-type)`, които получавате (например: `application/x-www-form-urlencoded`, `multipart/form-data`, `application/json` и т.н.).
46+
- [ ] Валидирайте въведеното от потребителя, за да избегнете често срещани уязвимости (например: `XSS`, `SQL-Injection`, `Remote Code Execution`и т.н.).
47+
- [ ] Не споделяйте чувствителни данни (`идентификационни данни`, `пароли`, `токени` или `API ключове`) в URL адреса, вместо това използвайте стандартната заглавка `Authorization`.
48+
- [ ] Използвайте само криптиране от страна на сървъра.
49+
- [ ] Използвайте API шлюз за ​​да конфигурирате кеширане, ограничаване на заявките (например: `Quota`, `Spike Arrest` или `Concurrent Rate Limit`) и динамично внедряване на API.
50+
51+
## Обработка
52+
53+
- [ ] Проверете, дали всички крайни точки са защитени чрез удостоверяване, за да избегнете прекъсване на процеса на удостоверяване.
54+
- [ ] Идентификаторът на собствен ресурс на потребителя, трябва да се избягва. Използвайте `/me/orders`, вместо `/user/654321/orders`
55+
- [ ] Не използвайте автоматично нарастване за ID. Вместо това използвайте `UUID`.
56+
- [ ] Ако анализирате XML файлове, уверете се, че анализът на обект е изключен, за да избегнете `XXE` (XML external entity).
57+
- [ ] Ако анализирате XML, YAML или друг език с котви и препратки, уверете се, че разширяването на обекта е изключено, за да избегнете `Billion Laughs/XML bomb` чрез атака с експоненциално разширяване на обект.
58+
- [ ] Използвайте CDN за качване на файлове.
59+
- [ ] Ако имате работа с огромно количество данни, използвайте Workers и Queues, за да обработите колкото е възможно повече, във фонов режим, и да върнете отговор бързо, за да избегнете HTTP блокиране.
60+
- [ ] Не забравяйте да изключите режима DEBUG.
61+
- [ ] Използвайте неизпълними стекове, когато има такива.
62+
63+
## Отговор
64+
65+
- [ ] Изпратете заглавката `X-Content-Type-Options: nosniff`.
66+
- [ ] Изпратете заглавката `X-Frame-Options: deny`.
67+
- [ ] Изпратете заглавката `Content-Security-Policy: default-src 'none'`.
68+
- [ ] Премахнете заглавките, които биха могли да помогнат на атакуващ да провери вашия ресурс за уязвимости - `X-Powered-By`, `Server`, `X-AspNet-Version`и т.н.
69+
- [ ] Фиксирайте `content-type` за вашия отговор. Ако изпращате отговор `application/json`, то тогава заявката трябва да бъде в `application/json`
70+
- [ ] Не изпращайте в отговорите чувствителни данни като `идентификационни данни`, `пароли` или `токени`.
71+
- [ ] Върнете правилния код на състоянието въз основа на резултатите от операцията. (например: `200 OK`, `400 Bad Request`, `401 Unauthorized`, `405 Method Not Allowed` и т.н.).
72+
73+
## Непрекъсната интеграция и непрекъсната доставка (CI & CD)
74+
75+
- [ ] Одитирайте вашия дизайн и внедрете модулни/интеграционни тестове.
76+
- [ ] Използвайте процес за преглед на кода (Code Review). Не се самоодобрявайте (no Self-Approval).
77+
- [ ] Уверете се, че вашето приложение е сканирано с антивирусен софтуер, преди да бъде пуснато в производство, включително библиотеки и други зависимости.
78+
- [ ] Непрекъснато провеждайте тестове за сигурност (статичен/динамичен анализ) на вашия код.
79+
- [ ] Проверете вашите зависимости (както софтуер, така и операционна система) за известни уязвимости.
80+
- [ ] Проектирайте решение за бързо връщане към предишната версия.
81+
82+
## Мониторинг
83+
84+
- [ ] Използвайте централизирани входове за всички услуги и компоненти.
85+
- [ ] Използвайте агенти, за да наблюдавате целия трафик, грешки, заявки и отговори.
86+
- [ ] Използвайте известия за SMS, Slack, имейл, Telegram, Kibana, Cloudwatch и др.
87+
- [ ] Уверете се, че не регистрирате чувствителни данни като кредитни карти, пароли, ПИН кодове и др.
88+
- [ ] Използвайте IDS и/или IPS система за наблюдение на заявки и екземпляри на API.
89+
90+
---
91+
92+
## Вижте също:
93+
94+
- [yosriady/api-development-tools](https://github.com/yosriady/api-development-tools) - Колекция от полезни ресурси за създаване на RESTful HTTP+JSON API.
95+
96+
---
97+
98+
# Принос
99+
100+
Чувствайте се свободни да допринесете, като отворите това хранилище, направите някои промени и изпратите `Pull Requests`. За всякакви въпроси, моля, пишете ни на `[email protected]`.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[繁中版](./README-tw.md) | [简中版](./README-zh.md) | [العربية](./README-ar.md) | [Azərbaycan](./README-az.md) | [বাংলা](./README-bn.md) | [Català](./README-ca.md) | [Čeština](./README-cs.md) | [Deutsch](./README-de.md) | [Ελληνικά](./README-el.md) | [Español](./README-es.md) | [فارسی](./README-fa.md) | [Français](./README-fr.md) | [हिंदी](./README-hi.md) | [Indonesia](./README-id.md) | [Italiano](./README-it.md) | [日本語](./README-ja.md) | [한국어](./README-ko.md) | [ພາສາລາວ](./README-lo.md) | [Македонски](./README-mk.md) | [മലയാളം](./README-ml.md) | [Монгол](./README-mn.md) | [Nederlands](./README-nl.md) | [Polski](./README-pl.md) | [Português (Brasil)](./README-pt_BR.md) | [Русский](./README-ru.md) | [ไทย](./README-th.md) | [Türkçe](./README-tr.md) | [Українська](./README-uk.md) | [Tiếng Việt](./README-vi.md)
1+
[繁中版](./README-tw.md) | [简中版](./README-zh.md) | [العربية](./README-ar.md) | [Azərbaycan](./README-az.md) | [বাংলা](./README-bn.md) | [Català](./README-ca.md) | [Čeština](./README-cs.md) | [Deutsch](./README-de.md) | [Ελληνικά](./README-el.md) | [Español](./README-es.md) | [فارسی](./README-fa.md) | [Français](./README-fr.md) | [हिंदी](./README-hi.md) | [Indonesia](./README-id.md) | [Italiano](./README-it.md) | [日本語](./README-ja.md) | [한국어](./README-ko.md) | [ພາສາລາວ](./README-lo.md) | [Македонски](./README-mk.md) | [മലയാളം](./README-ml.md) | [Монгол](./README-mn.md) | [Nederlands](./README-nl.md) | [Polski](./README-pl.md) | [Português (Brasil)](./README-pt_BR.md) | [Русский](./README-ru.md) | [ไทย](./README-th.md) | [Türkçe](./README-tr.md) | [Українська](./README-uk.md) | [Tiếng Việt](./README-vi.md) | [Български](./README-bg.md)
22

33
# API Security Checklist
44

0 commit comments

Comments
 (0)