Laravelの本番環境でのみ403エラー

開発環境では問題ないのに、本番環境でのみ、「://」や「(=」の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 アドバンスド