有必要验证htaccess变量的输出吗?



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

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

在本例中,我编写了htaccess规则,只允许4位数字。我有必要这样做吗?

$thisYear = $_GET['year'];

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

关键是责任分离。

你的重写规则意味着直接输入到你的应用程序,仅此而已。您的应用程序负责确定哪些是有效的,哪些是无效的。

虽然您只会从您所显示的重写规则中获得4位数字,但run.php是否可以直接访问?如果被人发现了怎么办?

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

最新更新