|
18 | 18 |
|
19 | 19 | ### OAuth |
20 | 20 | - [ ] Секогаш проверувајте ја `redirect_uri` од страна на серверот за да дозволите само бела листа на адреси. |
21 | | -- [ ]Секогаш обидувајте се да разменувате за код, а не токени (не дозволувајте `response_type = token`). |
22 | | -- [ ] Користете го параметрот `state` со случаен хаш за да го спречите CSRF за процесот на автентикација на OAuth. |
| 21 | +- [ ] Секогаш обидувајте се да разменувате за код, а не токени (не дозволувајте `response_type = token`). |
| 22 | +- [ ] Користете `state` параметар со случаен хаш за да се спречи CSRF на процесот на автентикација на OAuth |
23 | 23 | - [ ] Дефинирајте го основниот опсег и проверете ги параметрите на опсегот за секоја апликација. |
24 | 24 |
|
25 | 25 | ## Пристап |
|
36 | 36 | - [ ] Користете API Gateway-услуга за да овозможите кеширање, политики за ограничување на тарифите (пр. `Quota`, `Spike Arrest`, `Concurrent Rate Limit`) и динамички да ги распоредите ресурсите за API-то. |
37 | 37 |
|
38 | 38 | ## Processing |
39 | | -- [ ] Check if all the endpoints are protected behind authentication to avoid broken authentication process. |
40 | | -- [ ] User own resource ID should be avoided. Use `/me/orders` instead of `/user/654321/orders`. |
41 | | -- [ ] Don't auto-increment IDs. Use `UUID` instead. |
42 | | -- [ ] If you are parsing XML files, make sure entity parsing is not enabled to avoid `XXE` (XML external entity attack). |
43 | | -- [ ] If you are parsing XML files, make sure entity expansion is not enabled to avoid `Billion Laughs/XML bomb` via exponential entity expansion attack. |
44 | | -- [ ] Use a CDN for file uploads. |
45 | | -- [ ] If you are dealing with huge amount of data, use Workers and Queues to process as much as possible in background and return response fast to avoid HTTP Blocking. |
46 | | -- [ ] Do not forget to turn the DEBUG mode OFF. |
| 39 | +- [ ] Проверете дали сите крајните точки се заштитени зад автентичност за да се избегне скршен процес на автентикација. |
| 40 | +- [ ] Треба да се избегнува идентификација на сопствени ресурси на сопственикот. Користете `/ me / orders` наместо` / user / 654321 / orders`. |
| 41 | +- [ ] Не автоматско зголемување на ID-ите. Наместо тоа, употребете `UUID`. |
| 42 | +- [ ] Ако ги анализирате XML-датотеките, проверете дали парсирањето на ентитетот не е овозможено за да се избегне `XXE` (напад на надворешен ентитет на XML). |
| 43 | +- [ ] Ако анализирате XML-датотеки, проверете дали проширувањето на ентитетот не е овозможено за да се избегне `Billion Laughs / XML бомба` преку експоненцијален напад на експанзија на ентитетот. |
| 44 | +- [ ] Користете CDN за закачување на фајлови. |
| 45 | +- [ ] Ако се занимавате со огромни количини на податоци, користете Workers and Queues за да процесирате што е можно повеќе во позадина и да го вратите одговорот брзо за да избегнете блокирање на HTTP |
| 46 | +- [ ] Не заборавајте да го исклучите режимот DEBUG. |
47 | 47 |
|
48 | | -## Output |
49 | | -- [ ] Send `X-Content-Type-Options: nosniff` header. |
50 | | -- [ ] Send `X-Frame-Options: deny` header. |
51 | | -- [ ] Send `Content-Security-Policy: default-src 'none'` header. |
52 | | -- [ ] Remove fingerprinting headers - `X-Powered-By`, `Server`, `X-AspNet-Version` etc. |
53 | | -- [ ] Force `content-type` for your response, if you return `application/json` then your response `content-type` is `application/json`. |
54 | | -- [ ] Don't return sensitive data like `credentials`, `Passwords`, `security tokens`. |
55 | | -- [ ] Return the proper status code according to the operation completed. (e.g. `200 OK`, `400 Bad Request`, `401 Unauthorized`, `405 Method Not Allowed`, etc). |
| 48 | +## Излез |
| 49 | +- [ ] Праќај `X-Content-Type-Options: nosniff` хедер . |
| 50 | +- [ ] Праќај `X-Frame-Options: deny` хедер. |
| 51 | +- [ ] Праќај `Content-Security-Policy: default-src 'none'` хедер. |
| 52 | +- [ ] Отстранете ги хедерите кој издаваат отповеќе податоци - `X-Powered-By`, `Server`, `X-AspNet-Version` etc. |
| 53 | +- [ ] Присилувај `content-type` " за твојот одговор, ако се вратиш `application/json` тогаш твојот одговор `content-type` е `application/json`. |
| 54 | +- [ ] Не враќајте чувствителни податоци како `credentials`, `Passwords`, `security tokens`. |
| 55 | +- [ ] Врати го соодветниот код за статусот според завршената операција. (e.g. `200 OK`, `400 Bad Request`, `401 Unauthorized`, `405 Method Not Allowed`, etc). |
56 | 56 |
|
57 | 57 | ## CI & CD |
58 | | -- [ ] Audit your design and implementation with unit/integration tests coverage. |
59 | | -- [ ] Use a code review process and disregard self-approval. |
60 | | -- [ ] Ensure that all components of your services are statically scanned by AV software before push to production, including vendor libraries and other dependencies. |
61 | | -- [ ] Design a rollback solution for deployments. |
62 | | - |
| 58 | +- [ ] Ревизија на вашиот дизајн и имплементација со покриеност тестови за единица / интеграција. |
| 59 | +- [ ] Користете процес на прегледување на кодот и не дозволувајте самоодобрување |
| 60 | +- [ ] Осигурајте се дека сите компоненти на вашите услуги се статички скенирани од AV-софтверот пред да се изврши притисок за производство, вклучувајќи библиотеки на продавачи и други зависности. |
| 61 | + |
| 62 | +- [ ] Дизајн на rollback за во продукција |
63 | 63 |
|
64 | 64 | --- |
65 | 65 |
|
|
0 commit comments