開発環境では問題ないのに、本番環境でのみ、「://」や「(=」のPOST送信で403エラーになる。
原因不明だなと思って調べてたら、原因はWAFっぽい。
Laravel5.7 403エラー forbiddenが出た時 – ソフトウェアエンジニアの技術ブログ:Software engineer tech blog
– DNS設定していない
– サーバーから制限
– パーミッション(権限・属性)の設定ミス
– .htaccessの設定ミス
– サーバー側の障害
– WAF設定
上記記事で気付いた。
WAFのBlock結果を見てみたら、たしかにBlockされてた。
WAF-CommonRuleSet
AWS#AWSManagedRulesCommonRuleSet#GenericRFI_QUERYARGUMENTS
BLOCK
AWSManagedRulesCommonRuleSet の GenericRFI_QUERYARGUMENTS を除外( Override rules action )しておいた。
マネージドルールCommonRuleSetによるブロックと例外登録を行う | DevelopersIO
上記対策で403エラーが起こらなくなった。
ファイルインクルードの対策 | セキュリティ対策 | CyberSecurityTIMES
1.ファイルインクルードとは?
ファイルインクルードとは、プログラムの中で別ファイルを参照するコードがあった場合に、実際に参照すべきファイルとは別のファイルやデータを読み込ませて、本来意図しない不正なデータ処理を行わせる攻撃です。
システム上に脆弱性がある場合、ファイルインクルードで攻撃されることで、ユーザーIDやパスワードが漏洩し、システムの乗っ取りなどを引き起こす可能性があります。
AWS WAFv2のマネージドルールを使ってRFIから保護する | DevelopersIO
../ のPOSTはこれに掛かるらしい
AWS#AWSManagedRulesCommonRuleSet#GenericLFI_BODY
AWS マネージドルール ルールグループ リスト - AWS WAF, AWS Firewall Manager、、および AWS Shield アドバンスド