Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否有必要验证来自 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可以直接访问吗?如果有人找到它会怎样?
run.php
在更一般的情况下,您接受更广泛的重写输入,但更具体的处理规则,您不希望每次应用程序需要更改时都必须更改重写规则。