对于使用$ _GET的页面重定向,此清理是否正常?

时间:2011-12-29 07:01:06

标签: php get security sanitization

我正在使用$ _get进行简单的页面重定向。 我刚刚开始学习如何清理用户输入,所以我想知道下面的代码是否正常。是否有针对此特定代码推荐的其他清理工作?如果是,为什么?

关于以下代码。我检查了用户输入的值,然后在重定向之前将值与可接受值列表进行匹配。

$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$PAGES = array('a', 'b', 'c', 'd', 'z');

if (empty($_GET['letter'])) { 
$_GET['letter']="a";
}

if (!in_array($_GET['letter'], $PAGES)) { 
$_GET['letter']="a";  
}

$letter=$_GET['letter']; 
$goto=$letter .".php";
header("Location: http://$host$uri/$goto");

2 个答案:

答案 0 :(得分:0)

Apache,mod_rewrite会更好。

答案 1 :(得分:0)

作为日志,你将$ _GET ['letter']保存在一组$ PAGES中,我认为你会没事的。但是,你的代码非常糟糕!

可能这会对你有所帮助: PHP switch with GET request

也许你会对使用Zend Framework MVC感兴趣。

http://framework.zend.com/manual/en/zend.controller.quickstart.html

您也可以找到mod_rewrite的示例。快乐阅读!!!