我还需要使用准备好的声明吗?

Suf*_*fii 6 php mysqli prepared-statement

使用PHP和MySQLi我有一个简单的表单,有4个HTML 5下拉选择列表输入.现在想知道我还需要使用Prepared Statement来保护我的数据库吗?我还有SQL注入问题的风险吗?或者是否存在使用此类输入的任何其他类型的风险.谢谢

Phi*_*p G 9

由于通过选择框插入的值很容易被最终用户修改,因此您仍然可以进行注入攻击.

如果你有一个很好的验证服务器端,那么在没有预备语句的情况下这样做会有效.

好的我的意思是这样的:

$array = Array("all", "your", "possible", "values", "from", "Select boxes");
if(in_array ($_POST['selectbox'], $array)){
      //Mysql statements etc....
}
Run Code Online (Sandbox Code Playgroud)

直接插入用户输入绝对不是一个好主意.你永远不应该相信最终用户!

  • @Suffii - 用户可以轻松修改表单(尝试Firebug或Chrome开发者控制台)......或者他们可以在单独的站点上创建表单并发布到您的服务器.有很多方法可以做到:"永远不要相信用户"是个好建议. (2认同)