在交换机功能中直接使用未经过滤的$_GET
变量有多安全,如下例所示?
<?php
switch ($_GET['sort'])
{
case "price":
// Do something
break;
default:
// Do something else
break;
}
?>
如果$_GET
变量仅出现在整个PHP脚本中的此开关函数中,是否有可能危及我的应用程序的安全性?
ADD:就此而言,未经过滤的$ _GET变量是否会导致比较操作以灾难性方式失败?
答案 0 :(得分:1)
可以在交换机中测试来自$_GET
的值。这本身就是验证。危险在于,当您将该值用于文件系统路径,数据库查询,HTML块或(抖动)评估代码时,无需进行上下文相关的清理。
答案 1 :(得分:1)
使用_GET
或_POST
的结果或用户在外部程序执行的代码中设置的任何其他数据(例如查询和exec()
调用)是不安全的。如果没有编码,回应用户收到的数据也是不安全的。
换句话说,你正在做的事情很好。