是否有必要验证htaccess变量输出

时间:2013-05-28 14:57:40

标签: php apache .htaccess

是否有必要验证来自htaccess规则的内容?

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

在这种情况下,我写了htaccess规则只允许4位数。我有必要这样做:

$thisYear = $_GET['year'];

并检查它是否为数字等。字母表会通过吗?

1 个答案:

答案 0 :(得分:2)

关键是责任分离。

您的重写规则旨在将输入定向到您的应用程序,仅此而已。您的应用程序负责确定什么是有效的,什么不是。

虽然您只显示了所显示的重写规则中的4位数,但是run.php是否可以直接访问?如果有人找到它会怎么样?

在更一般的情况下,您接受更广泛的重写输入,但更具体的处理规则,您不希望每次应用程序需要更改时都必须更改重写规则。