私はファイルのアップロードを許可するページに取り組んでいます。理論的には、 が私に送信するファイルが大きすぎる( の応答の長さを見て)ことを検出し、アップロードの受け入れを拒否すると、 がHTTP 413 "要求エンティティが大きすぎます"エラー。mod_perlでHTTP POSTリクエストのサイズを制限するにはどうしたらいいですか?
しかし、それは単にそれを行うことは十分ではないようです - それは私のエラーページを表示する前にFirefoxは、 少なくとも、まだ、( 長い時間がかかることがあります)、ファイルの残りを送り続けるでしょう。
HTTP specには、次のように記載されています。 "クライアントが リクエストを続行できないように接続を切断することがあります。"しかし、 'close STDIN'、 'STDIN、0'のシャットダウン、またはその一部の変形は、 トリックを実行していないようです - Firefoxは引き続きファイルを送信し続けます。
私のmod_perlハンドラが接続を閉じるとき、それは 自身とApache間の接続を閉じるだけです。 Apacheはクライアントとクライアントの間に接続を維持します( )。 Apacheに接続をシャットダウンするように指示する方法はありますか?それ以外の場合は、これはDoSベクターのような大きな のようです。
どのようなご提案も歓迎いたします。
リクエストがチャンクされていると思うかもしれないので、すべてのチャンクが到着するまで要求本体のサイズを知りません。 –