2013-05-28 26 views
0

是否有必要验证从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

有一种说法是,一个良好的编程是一个穿越单行道时,看起来左右逢源。我会建议仍然进行验证,但它只是构成“这种不应该发生”的情况。 – Orangepill

回答

2

关键是职责分离。

你重写规则是为了直接输入到你的应用程序,仅此而已。您的应用程序负责确定什么是有效的,哪些不是。

虽然这是事实,你只会得到你已经证明重写规则4个位数,是直接run.php访问?如果有人找到它,会发生什么?

在您接受重写更多的投入更一般的情况,但更具体的规则进行处理,你不希望有改变你的重写规则,每一个应用程序需要更改时间。

+0

run.php不能直接访问。它也不是索引文件。 – jmenezes

+0

将来你不可能直接使'run.php'文件可用,或者从另一个地方将输入引导到它?我仍然会在那里检查输入是否正确。此外,如果年份为“9999”或“0000”,则此“重写规则”将重定向。这对你的申请来说是有效的一年吗? –

+0

这不是,但它不会返回任何结果。 'select * from year where = 9999' – jmenezes

相关问题