通过在使用数据之前清理数据,我是否还有SQL注入的风险?如果是这样,我应该使用什么标准来消除SQL注入的可能性?我被告知下面的代码受SQL注入。但是,我在查询中使用之前对数据进行了清理,因此我不确定风险是否仍然存在。
VALUES ('".$_SESSION["username"].$_SESSION["setCount"]."', '".$_SESSION["username"]."')
我已经阅读了几个问题并研究了SQL注入,但我仍然不确定是否要检查所有方框。似乎最常见的是数据清理,程序结构和限制用户可以访问的变量。
答案 0 :(得分:1)
使用准备好的陈述:
示例:强>
$insert = $db->prepare("INSERT INTO table (usernameCount,username) VALUES (?,?)");
$insert->bind_param("ss", $usernameCount, $username);
$username = $_SESSION['username'];
$usernameCount = $_SESSION['username'] . $_SESSION['setCount'];
$insert->execute();
在bind_param
方法中,第一个参数是每个参数的数据类型。
每个s
对应于每个参数$usernameCount
和$username
。