使用PHP和MySQLi我有一个带有4个HTML 5下拉列表选择列表输入的简单表单。现在想知道我还需要使用Prepared Statement来保护我的数据库吗?我还有SQL注入问题的风险吗?或者是否存在使用此类输入的任何其他类型的风险。感谢
答案 0 :(得分:9)
您仍然可以进行注射攻击,因为通过您的选择框插入的值很容易被最终用户修改。
如果你有一个很好的验证服务器端,那么在没有预备语句的情况下这样做是可行的。
好的,我的意思是这样的:
$array = Array("all", "your", "possible", "values", "from", "Select boxes");
if(in_array ($_POST['selectbox'], $array)){
//Mysql statements etc....
}
直接插入用户输入绝对不是一个好主意。你永远不应该相信最终用户!