使用isset的风险?

时间:2011-03-26 15:30:10

标签: php sanitization

我是PHP的新手。

我被建议清理$_GET$_POST。我一直在遵循这个建议。

但是,如果我只想用

检查变量
if(isset($_GET['login']))

我需要对此进行任何消毒吗?

另外,我是否需要清理我使用的$_SESSION值?

5 个答案:

答案 0 :(得分:6)

不,您不必进行任何消毒或其他任何事情:isset()将允许您检查变量(或您的案例中的项目数组)是否存在 - 这就是它。

在这里,当您测试项目/变量是否存在时,您无法清理它:要清理数据,您需要它存在。


但请注意:isset()如果该项目存在,则会返回false,但是null
$_GET项的情况下,很可能不会发生。

答案 1 :(得分:1)

没有。如果你只想检查变量是否存在 - 那么你的代码就可以了。

答案 2 :(得分:0)

不,这样做没有风险。

在继续使用业务逻辑中$_GET / $_POST中的值之前,需要进行清理(例如,使用它构建数据库查询或将其作为HTML输出的一部分显示给用户);在这里,你只是测试一个值是否存在。

答案 3 :(得分:0)

不,你没有。但更好的方法是:

if(key_exists('login',$_GET)) {
}

答案 4 :(得分:0)

我认为不需要卫生设施,如果您只需要检查是否设置了密钥登录,那么最好这样做:

if(array_key_exists('login',$_GET))

因为如果未设置密钥,您的代码将抛出通知错误。