是否有必要验证来自htaccess规则的内容?
RewriteRule ^/?([0-9]{4})/?$ /run/run.php?year=$1 [NC,L]
This does http://www.localhost/2014
在这种情况下,我写了htaccess规则只允许4位数。我有必要这样做:
$thisYear = $_GET['year'];
并检查它是否为数字等。字母表会通过吗?
答案 0 :(得分:2)
关键是责任分离。
您的重写规则旨在将输入定向到您的应用程序,仅此而已。您的应用程序负责确定什么是有效的,什么不是。
虽然您只显示了所显示的重写规则中的4位数,但是run.php
是否可以直接访问?如果有人找到它会怎么样?
在更一般的情况下,您接受更广泛的重写输入,但更具体的处理规则,您不希望每次应用程序需要更改时都必须更改重写规则。