0

htaccess ルールから入ってくるものを検証する必要はありますか?

RewriteRule ^/?([0-9]{4})/?$ /run/run.php?year=$1 [NC,L]
This does http://www.localhost/2014

この場合、4 桁のみを許可する htaccess ルールを作成しました。私がする必要がありますか:

$thisYear = $_GET['year'];

数字かどうかなどを確認します。アルファベットは通り抜けますか?

4

1 に答える 1

2

重要なのは責任の分離です。

書き換えルールは、入力をアプリケーションに直接送信するためのものであり、それ以上のものではありません。アプリケーションは、何が有効で何がそうでないかを判断する責任があります。

あなたが示した書き換えルールから4桁しか得られないのは事実ですが、run.php直接アクセスできますか? 誰かがそれを見つけたらどうなりますか?

書き換えのためのより広範な入力を受け入れるが、処理のためのより具体的なルールを受け入れる、より一般的なケースでは、アプリケーションの変更が必要になるたびに書き換えルールを変更する必要はありません。

于 2013-05-28T15:00:40.407 に答える