PHP | MySQLi:使用..real_escape。。有精确的参数吗?
我想知道在这种情况下是否仍应该使用mysqli\u real\u escape\u字符串 我有一组url参数,这些参数是可以接受的,否则会被忽略PHP | MySQLi:使用..real_escape。。有精确的参数吗?,php,mysqli,Php,Mysqli,我想知道在这种情况下是否仍应该使用mysqli\u real\u escape\u字符串 我有一组url参数,这些参数是可以接受的,否则会被忽略 if(isset($_GET["data"])) { $data = $_GET["data"]; switch($data) { case "one" : //do x $sql = "SELECT * FROM table WHERE page='".$data."'"; break;
if(isset($_GET["data"])) {
$data = $_GET["data"];
switch($data) {
case "one" :
//do x
$sql = "SELECT * FROM table WHERE page='".$data."'";
break;
case "two" :
//do x
break;
case "three" :
//do x
break;
}
}
在这种情况下,不需要mysqli\u real\u escape\u字符串。此函数的目的是“清理”用户输入的数据 在当前编写的代码中,是的,您使用的是用户输入的数据,$_GET['data']可能包含表单中输入的内容(或类似内容);但是,由于在将$\u GET['data']连接到查询之前,使用switch语句检查它,所以您就可以了 但是,如果您决定实现一个“默认情况”,将$data连接到一个查询,而不首先将其与您知道是安全的值进行比较,那么,是的,您应该清理数据
这里有一些关于清理用户输入的进一步阅读:在这种情况下,不需要mysqli\u real\u escape\u字符串。此函数的目的是“清理”用户输入的数据 在当前编写的代码中,是的,您使用的是用户输入的数据,$_GET['data']可能包含表单中输入的内容(或类似内容);但是,由于在将$\u GET['data']连接到查询之前,使用switch语句检查它,所以您就可以了 但是,如果您决定实现一个“默认情况”,将$data连接到一个查询,而不首先将其与您知道是安全的值进行比较,那么,是的,您应该清理数据
下面是关于清理用户输入的进一步阅读:除了已知字符串之外,您没有向查询传递任何内容。您可以安全地避免转义。您不会向查询传递除已知字符串以外的任何内容。你可以安全地避免逃跑。