我的.htaccess中有针对页面,show property id等的规则......
我想确保我验证我得到的每个参数。
我有:
RewriteRule ^(.*)$ page.php?page=$1
RewriteRule ^property/(.*)$ property.php?pid=$1
所以在我的php中我做了:
$page = $_GET['page'];
和
$propertyid = $_GET['pid'];
现在我需要保护它们,但我想知道哪种方法最适合用来保护它们,这就是我失去的地方。
答案 0 :(得分:15)
我会说要使用这些规则:
RewriteRule ^([a-z0-9]+)/?$ page.php?page=$1 [L,NC]
RewriteRule ^property/([0-9]+)/?$ property.php?pid=$1 [L,NC]
这样,如果有人输入除字母和数字(用于页面)和数字(用于属性)之外的任何字符,它将显示未找到的页面。
如果您希望确实,您可以
$page = mysql_real_escape_string($_GET['page']);
只需确保您的数据库连接已打开,您就可以像$propertyid = (int)$_GET['pid'];
答案 1 :(得分:0)
我认为使用page参数你应该有一个acept页面列表,然后在获取'page'之后,检查'page'是否在接受列表中。 例如:
$arr_pages = ('page1','page2','page3');
$page = $_GET['page'];
if(in_array($page,$arr_pages))
{
// do some thing
}
else
{
// page not found
}
并且id:
$propertyid = intval($_GET['pid']);
希望这有帮助:)