概要
mp4ファイルをアップロードしたときに、2段階でWAFのルールセットによりブロックされた。
対応策についてまとめる。
1つ目SizeRestrictions_BODY
これはWAFのコアルールセットが8KBを超えるボディを持つリクエストをはじくということ。
動画ファイルは5Mくらいあったため、SizeRestrictions_BODY
に引っかかっていた。
デフォルトアクションがBlockのため一時的にSizeRestrictions_BODY
のみCountにオーバーライドして動作を検証した。
2つ目CrossSiteScripting_BODY
アップロードしようとしたmp4のファイルが引っかかってしまった。
こちらの記事を参考にすると、ファイルアップロード処理ではCrossSiteScripting_BODY
以外にも SQLi_BODY
、WindowsShellCommands_BODY
、GenericLFI_BODY
、SizeRestrictions_BODY
ルールによってブロックされる可能性があるらしい。
こちらもCountにオーバーライドすると一応動作し、ファイルをアプリからS3へ送信できることが確認できた。
対応
参考にした上記記事で紹介されている、特定のURIパスではないときのみブロックを発動させる方法をとる。
参考:https://mazyu36.hatenablog.com/entry/2023/02/21/092008
WAFの例外設定である、「スコープダウンステートメント」を行う
WAFのルールセットの編集画面で以下の画像のように設定することで/uploadというパスからのファイルアップロードに対してルールを除外できる
参考