22

古典的な「RESTful Web サービス」の本 (O'Reilly、ISBN 978-0-596-52926-0) の 251 ページには、「一部のファイアウォールは HTTP PUT と DELETE をブロックしますが、POST はブロックしません」と書かれています。

これはまだ本当ですか?

それが本当なら、オーバーロードされた POST を DELETE の代わりに使用できるようにする必要があります。

4

4 に答える 4

17

HTTP PUT/DELETE をブロックするファイアウォールは、通常、(ファイアウォールの背後にあるサーバーへの) 着信接続をブロックします。アプリケーションを保護するファイアウォールを制御できると仮定すると、それについて心配する必要はありません。

また、ファイアウォールは、ネットワーク トラフィックに対して詳細な検査を実行している場合にのみ、PUT/DELETE をブロックできます。暗号化により、ファイアウォールが URL を分析できなくなります。そのため、HTTPS を使用している場合 (SSL でデータを保護しているのですよね?)、Web サービスにアクセスするクライアントは、標準の 4 つの HTTP 動詞のいずれかを使用できます。

于 2009-12-04T18:51:48.163 に答える
1

DELETEリクエストをサポートするためにPOSTをオーバーロードする心配はありません。

HTML4.0およびXHTML1.0は(を介して)GETおよびPOST要求のみをサポートするため、サーバーによって読み取られ、適切にディスパスされる非表示のフォームフィールドを介してPUT/DELETEをトンネリングするのが一般的です。この手法により、ブラウザー間の互換性が維持され、ファイアウォールの問題を無視できます。

Ruby On Railsと.NETはどちらも、この方法でRESTfulリクエストを処理します。

余談ですが、現在、GET、POST、PUT、およびDELETEリクエストは、XMLHttpRequestリクエストオブジェクトを介して完全にサポートされています。XHTML 2.0は、GET、POST、PUT、およびDELETEも公式にサポートしています。

于 2009-12-04T17:58:35.567 に答える
1

一部の 7 層ファイアウォールは、この程度までトラフィックを分析できます。しかし、それらをそのように構成する場所がいくつあるかはわかりません。serverfault.com をチェックして、そのような構成がどれほど人気が​​あるかを確認することができます (IT スタッフにいつでも確認することもできます)。

于 2009-12-01T20:47:38.453 に答える
0

ファイアウォールは好きなように設定できるので(少なくとも理論上は)、一部のシステム管理者が HTTP PUT/DELETE をブロックしても驚かないでください。

HTTP PUT/DELETE一部の誤った構成のサーバーに関する危険性がありDELETEます。PUT は、ターゲット サーバー上のドキュメントを置き換えます (そして削除します ;-)。そのため、一部のシステム管理者PUTは、どこかでクラックが発生した場合に備えてブロックすることを決定します。


もちろん、IP レイヤーだけでなく、「レイヤー 7」で動作するファイアウォールについて話している ;-)

于 2009-12-01T20:48:01.077 に答える