有必要验证来自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
是否可以直接访问?如果被人发现了怎么办?
在更一般的情况下,您接受更广泛的重写输入,但更具体的处理规则,您不希望每次应用程序需要更改时都必须更改重写规则。