🪬

Apache のアップデートにより、URL にクエリパラメータとしての ? または %3F が含まれる場合403 Forbidden エラー

2024/09/21に公開

PHPの開発環境でソースコードを変えてないのに403 Forbidden エラーが発生してました。

原因

Apache のアップデートが原因。
セキュリティ強化のため、Apacheが特定のエンコード文字をデフォルトで許可しなくなった、そのためURLにクエリパラメータとしての ? または %3F が含まれると 403 Forbidden エラーが発生するようになった。

解決策

解決策として、.htaccess ファイルで UnsafeAllow3F を使用することができるが、予期せぬ動作やセキュリティリスクがあるとのこと。
そのため、推奨されるのは、Apache を最新バージョン(2.4.60以上)にアップデートすることのようです。

参考

https://stackoverflow.com/questions/78729429/403-forbidden-when-url-contains-get-with-encoded-question-mark-unsafeallow3f

Discussion