Pergunta

No livro clássico "RESTful Web Services" (O'Reilly, ISBN 978-0-596-52926-0) que diz na página 251 "Algumas firewalls bloqueiam HTTP PUT e DELETE, mas não POST."

Isso ainda é verdade?

Se é verdade que tenho para permitir sobrecarregado POST para substituto para DELETE.

Foi útil?

Solução

Firewalls bloqueio HTTP PUT / exclusão serão tipicamente bloquear ligações de entrada (para servidores atrás do firewall). Supondo que você tenha controles sobre o firewall protegendo seu aplicativo, você não precisa se preocupar com isso.

Além disso, firewalls só pode bloquear PUT / DELETE se eles estão realizando inspeção profunda sobre o tráfego de rede. Encryption irá impedir firewalls de analisar a URL, por isso, se você estiver usando HTTPS (você está protegendo seus dados com SSL, certo?) Os clientes que acessam o seu serviço web será capaz de usar qualquer um dos padrão de quatro HTTP verbos.

Outras dicas

Alguns 7 firewalls camada poderia analisar o tráfego a esse grau. Mas eu não tenho certeza quantos lugares seria configurá-los como tal. Você pode verificar em serverfault.com para ver o quão popular tal configuração pode ser (você também pode sempre verificar com o seu pessoal de TI)

Eu não me preocuparia com a sobrecarga de um POST para apoiar um pedido DELETE.

HTML 4.0 e XHTML 1.0 única suporte GET e POST (via) por isso é comum para um túnel PUT / DELETE através de um campo de formulário oculto que é lido pelo servidor e dispathced adequadamente. Esta técnica preserva a compatibilidade entre navegadores e permite que você para ignorar quaisquer problemas de firewall.

Ruby On Rails e .NET ambos lidar com as solicitações RESTful desta forma.

Como um aparte GET, POST, PUT e pedidos de DELETE são totalmente suportados através do XMLHttpRequest objeto de solicitação no presente. XHTML 2.0 é oficialmente suportes GET, POST, PUT e excluir também.

Você pode configurar um firewall para o que quiser (pelo menos em teoria) para não ser surpreendido se alguns sys admins fazer bloco de HTTP PUT / DELETE.

O perigo de HTTP PUT/DELETE é sobre algumas mis-configurados servidores: documentos Substitui PUT (e DELETE exclui-los ;-) no servidor de destino. Assim, alguns sys admins decidir-se direito de PUT bloco no caso de uma rachadura é aberto em algum lugar.


É claro que estamos falando de Firewalls atuando na "camada de 7" e não apenas na camada IP; -)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top