在Switch函数中使用Unfiltered $ _GET变量是否安全?

时间:2011-10-20 03:17:04

标签: php security

在交换机功能中直接使用未经过滤的$_GET变量有多安全,如下例所示?

<?php

 switch ($_GET['sort'])
 {
  case "price":
  // Do something
  break;

  default:
  // Do something else
  break;
 }

?>

如果$_GET变量仅出现在整个PHP脚本中的此开关函数中,是否有可能危及我的应用程序的安全性?

ADD:就此而言,未经过滤的$ _GET变量是否会导致比较操作以灾难性方式失败?

2 个答案:

答案 0 :(得分:1)

可以在交换机中测试来自$_GET的值。这本身就是验证。危险在于,当您将该值用于文件系统路径,数据库查询,HTML块或(抖动)评估代码时,无需进行上下文相关的清理。

答案 1 :(得分:1)

使用_GET_POST的结果或用户在外部程序执行的代码中设置的任何其他数据(例如查询和exec()调用)是不安全的。如果没有编码,回应用户收到的数据也是不安全的。

换句话说,你正在做的事情很好。