php抓住正确的方式

时间:2014-11-08 21:06:32

标签: php security sql-injection

在服务器端php如何从视图中捕获帖子然后执行业务逻辑,我应该使用下面的示例2-写下每个帖子密钥,如果使用1-是否有任何安全问题可能发生?

1-

if (isset($_POST)) {
  // do something use $_POST['..']
} else {
  // denied
}

2 -

if (isset($_POST['name']) && isset($_POST['password']) && isset($_POST['password_confirm']) ) {
  // do something
} else {
  // denied
}

3 -

if ($_POST) {
}

2 个答案:

答案 0 :(得分:0)

确保使用这些post值的函数/方法受SQL注入保护,并且他们对输入参数进行基本检查,一切都应该没问题。

答案 1 :(得分:0)

对于sql预防,你有两个选项

  • 转发单引号

  • 准备好的陈述

例如你可以用来逃避你可以使用“mysql_real_escape_string”函数

 if (isset($_POST)) {
  $some_key = mysql_real_escape_string($_POST{'some_key'});
 } else {
 // denied
  }

对于准备好的语句,你应该使用mysqli而不是mysql,然后应该执行像

这样的数据库操作
     if($stmt = $mysqli -> prepare("SELECT priv FROM testUsers WHERE username=?
   AND password=?")) {


      $stmt -> bind_param("ss", $_POST['user_key'], $_POST['pass_key']);


      $stmt -> execute();}