关于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而言,...
  • dengjiexian123
  • dengjiexian123
  • 2016年12月24日 22:15
  • 12265

PHP PDO 防止SQL注入

使用PDO的好处: 1> 防止SQL注入 2> 提高执行效率 每条SQL执行前,MYSQL数据库都需要先进行编译(即便是一个空格也可能引起重新编译)。在循环执行多条数据时,使用prepare方式传入不...
  • yyt8yyt8
  • yyt8yyt8
  • 2016年03月28日 10:41
  • 1031

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

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

分享一个PHP PDO 的工具类,采用预编译有效防止SQL注入

分享一个PHP PDO 的工具类,采用预编译有效防止SQL注入
  • blovecat
  • blovecat
  • 2017年07月27日 22:24
  • 409

PDO防sql注入

//CI框架 $name=$_POST['name']; $psd=$_POST['psd']; //预处理 $sql=$this->db->prepare("sele...
  • lxcboke
  • lxcboke
  • 2016年04月22日 20:10
  • 853

pdo防sql注入

使用PDO访问MySQL数据库时,真正的real prepared statements 默认情况下是不使用的。为了解决这个问题,你必须禁用 prepared statements的仿真效果。下面是使...
  • baidu_36030459
  • baidu_36030459
  • 2016年09月06日 08:40
  • 111

PDO预处理防sql注入

$pdo=new PDO('mysql:host=127.0.0.1;dbname=ci','root','root',array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set...
  • lxcboke
  • lxcboke
  • 2016年06月11日 18:57
  • 897

防止SQL注入的五种方法

摘要 防止SQL注入 一、SQL注入简介     SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡...
  • yemulan123
  • yemulan123
  • 2016年09月14日 20:27
  • 23524

【面试题】什么是SQL注入式攻击?

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存...
  • hj7jay
  • hj7jay
  • 2016年08月11日 10:17
  • 1170

.net防止SQL注入方法

  所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作...
  • SurreyWilliam
  • SurreyWilliam
  • 2008年04月08日 11:35
  • 1348
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于PDO防sql注入问题
举报原因:
原因补充:

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