关于PDO防sql注入问题

原创 2015年11月19日 15:31:01

在php类似的web开发应用程序中,SQL的注入问题,总是围绕着安全问题,挥之不去,那么如何真正做好你的SQL过滤呢.PHP官方推荐的PDO即可以轻松搞定关于SQL注入的问题,也可以提升SQL执行效率,一举两得的事情为什么不去做呢?所以今天为大家说说关于PHP的防止SQL注入问题的思考,不废话了下面代码实例.

普通防止sql注入方式, 下面以登录为列

第一步: 先链接数据库
try{
    $user = 'xxx'; // 用户名
    $pwd = 'xxx';// 密码
    $dbname = "xxx"; // 数据库
    $pdo = new PDO("mysql:dbname=$dbname",$user, $pwd);
}catch(PDOException $e){
    echo $e->getMessage();
}

// 防止sql注入第一种方式
// 下面接收从表单提交过来的用户名和密码
// $username = $_POST['username']; // 这样会造成sql注入漏洞
$username = addslashes($_POST['username']); // 使用addslashes()这个函数滤非法字符,防止sql注入.
$password = $_POST['password'];
$sql = "SELECT * FROM user WHERE username=$username AND pwd = '{$pwd}'";
$stmt = $pdo->query($sql);
echo $stmt->rowCount(); // 返回受影响的行数

// 第二:使用PDO::quote()方法防止sql注入,过滤非法字符
$username = $pdo->quote($_POST['username'], PDO::PARAM::STR); //quote()方法有两个参数, 第一个参数为要过滤的字段, 第二个为指定当前字段类型, 默认为字符型

pdo调用方法以及防sql注入原理

前言 在web站点中,经常会遇到各种各样的网络攻击,其中sql注入是非常常见的一种,所以需要对sql注入进行防护。 目前许多站点服务端基本采用php+mysql的方式。对应php连接mysq而言,...

pdo通过预处理语句防止sql注入

本文会通过一个简单的登录验证来演示通过预处理语句防注入。 数据库:test; 创建表:CREATE TABLE USER( id INT UNSIGNED AUTO_INCREMENT KEY, u...

PDO防止sql注入的机制

上面这段代码就可以防范sql注入。为什么呢? 当调用 prepare() 时,查询语句已经发送给了数据库服务器,此时只有占位符 ? 发送过去,没有用户提交的数据;当调用到 execute()时,用户...

使用PDO查询mysql避免SQL注入

使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严紧,就有SQL注入风险。虽然可以用mysql_real_escape_string()函数过滤用户提...
  • Er_Ni
  • Er_Ni
  • 2016年05月31日 09:27
  • 254

使用PDO查询mysql避免SQL注入

使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严紧,就有SQL注入风险。虽然可以用mysql_real_escape_string()函数过滤用户提...

ThinkPHP 3.1中的SQL注入漏洞分析----论ThinkPHP 3.1中的半吊子的PDO封装

我总结ThinkPHP的PDO封装可以用买椟还珠来下结论,表面上封装了PDO支持,但实际却并没有使用到PDO的精髓部分,这不是买椟还珠是什么呢?     花了一些时间了解到Think...

使用PDO查询Mysql来避免SQL注入风险

正 文:    当我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制。虽然可以用mysql_rea...
  • C860_zy
  • C860_zy
  • 2013年12月10日 18:50
  • 872

pdo如何防止 sql注入

我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制。虽然可以用mysql_real_escape_s...

使用PDO查询Mysql来避免SQL注入风险

当我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制。虽然可以用mysql_real_escape_...
  • zm2714
  • zm2714
  • 2013年04月03日 08:51
  • 1483

使用PDO查询Mysql来避免SQL注入风…

当我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制。虽然可以用mysql_real_escape_...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于PDO防sql注入问题
举报原因:
原因补充:

(最多只允许输入30个字)