0

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

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

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

$thisYear = $_GET['year'];

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

4

1 回答 1

2

关键是职责分离。

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

虽然您确实只能从您显示的重写规则中获得 4 位数字,但run.php可以直接访问吗?如果有人找到它会怎样?

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

于 2013-05-28T15:00:40.407 回答