Подтвердить что ты не робот

RESTful PUT и DELETE и брандмауэры

В классической книге "RESTful Web Services" (O'Reilly, ISBN 978-0-596-52926-0) говорится на стр. 251 "Некоторые брандмауэры блокируют HTTP PUT и DELETE, но не POST".

Это все еще верно?

Если это правда, я должен разрешить перегружать POST для замены DELETE.

4b9b3361

Ответ 1

Блокировка межсетевых экранов HTTP PUT/DELETE обычно блокирует входящие соединения (на серверы за брандмауэром). Предполагая, что у вас есть контроль над брандмауэром, защищающим ваше приложение, вам не нужно беспокоиться об этом.

Кроме того, брандмауэры могут блокировать PUT/DELETE, если они выполняют глубокую проверку сетевого трафика. Шифрование предотвратит анализ брандмауэров URL-адреса, поэтому, если вы используете HTTPS (вы защищаете свои данные с помощью SSL, так?) Клиенты, обращающиеся к вашему веб-сервису, смогут использовать любой из стандартных четырех HTTP-глаголов.

Ответ 2

Некоторые 7-уровневые брандмауэры могут анализировать трафик в этой степени. Но я не уверен, сколько мест будет настраивать их как таковые. Вы можете проверить serverfault.com, чтобы узнать, насколько популярна такая конфигурация (вы также можете всегда проверять со своим ИТ-персоналом)

Ответ 3

Я бы не стал беспокоиться о перегрузке POST для поддержки запроса DELETE.

HTML 4.0 и XHTML 1.0 поддерживают только запросы GET и POST (через), поэтому обычным явлением является туннель PUT/DELETE через скрытое поле формы, которое считывается сервером и соответствующим образом рассылается. Этот метод сохраняет совместимость между браузерами и позволяет игнорировать любые проблемы с брандмауэром.

Ruby On Rails и .NET обрабатывают запросы RESTful таким образом.

В качестве сторонних запросов GET, POST, PUT и DELETE полностью поддерживаются через объект запроса XMLHttpRequest. XHTML 2.0 официально поддерживает GET, POST, PUT и DELETE.

Ответ 4

Вы можете настроить брандмауэр на все, что хотите (по крайней мере теоретически), поэтому не удивляйтесь, если некоторые администраторы sys блокируют HTTP PUT/DELETE.

Опасность HTTP PUT/DELETE связана с некоторыми неправильно сконфигурированными серверами: PUT заменяет документы (и DELETE удаляет их;-) на целевом сервере. Поэтому некоторые администраторы sys решают право блокировать PUT в случае открытия трещины.


Конечно, мы говорим о брандмауэрах, действующих на "уровне 7", а не только на уровне IP; -)