ウェブサービスの「セキュリティ対策」の1つが、大きなファイルのアップロードをブロックしています。
大きすぎるファイルが送信されたときにできるだけ早くファイルのアップロード要求を取り消したいと思います。WebサービスでPOSTリクエストを放棄する最も早い瞬間ですか?
ファイルのアップロードとの要求が、とにかく最大のものであることを行っているので、私は現在TWebModule
のBeforeDispatch
ハンドラにこのコードを持っている:
procedure TWebModuleWebServices.WebModuleBeforeDispatch(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
// Request that are too large are going to be dropped silently:
if Request.ContentLength > cMaxContentSize then
begin
Handled := true;
Exit;
end;
のための可能な限り早い段階BeforeDispatchハンドラですこのテスト、またはより良い場所がありますか?
は、WebサービスがTIdHTTPWebBrokerBridge
を中心に構築されたインディで
'OnHeadersAvailable'が' VContinue = False'を設定すると、 'TIdCustomHTTPServer.OnHeadersBlocked'イベントを使ってクライアントに送り返されるレスポンスをカスタマイズすることができます。デフォルトでは、 '403 Forbidden'レスポンスが送信されます。この場合、 '413 Payload Too Large'がより適切でしょう。 –