❓Почему у вас везде POST❓
Казалось бы, все знают методы HTTP, принципы REST, и вообще, как делать "по стандарту". Но вот вы смотрите на свою систему, а там всё POST. Почему?
👆🏼POST ради безопасности
Забавно, но одна из самых распространённых причин — требования безопасности. Давайте разберём подробнее, зачем это может быть нужно.
1️⃣ Скрытие запросов
GET-запросы содержат параметры в URL. Это позволяет их видеть в истории браузера, логах серверов и прокси. Упоминания об этой уязвимости можно найти в OWASP (проект обеспечения безопасности веб-приложений).
В POST же данные передаются в теле запроса, что исключает утечку через URL.
2️⃣ Ограничения кэширования
GET-запросы по умолчанию могут кэшироваться в браузерах или прокси-серверах (через настройки Cache-Control). Это может привести к утечке данных или конфликтам.
POST-запросы, напротив, по умолчанию не кэшируются, что, на первый взгляд, кажется более безопасным.
3️⃣ Упрощённая проверка входных данных
Существует мнение, что в POST проще настроить проверку входных данных. Почему так считается — не всегда понятно, ведь современные библиотеки поддерживают работу со всеми методами. Но этот аргумент регулярно звучит в разговорах с разработчиками.
4️⃣ Ограничения инфраструктуры
Некоторые корпоративные шлюзы или прокси-серверы накладывают ограничения. Как правило, в таких случаях разрешены только методы POST и GET.
😏Мой взгляд
Использовать POST "ради безопасности", на мой взгляд, странно. Для всех перечисленных случаев существуют альтернативные решения. Если бы на моём проекте было так, я бы обязательно докапалась:
Почему выбрано именно такое решение?
Есть ли обоснование этому подходу в текущей архитектуре?
Должно ли это продолжаться в будущем?
Опиралась на стандарты, такие как RFC 7231, рекомендации OWASP, а также подходы к безопасности регламентированные стандартами ФСТЭК.
А теперь слово вам: делитесь было ли вам больно из-за повсеместного использования POST? Действительно это было обоснованно, и какие проблемы создавала вам?
#POSTзапросы #СистемныйАнализ #OpenAPI #информационнаябезопасность
Post #278
372

- 👍 4
- 🤔 1