关闭

关于PDO防sql注入问题

标签: pdosql注入phpweb开发
285人阅读 评论(0) 收藏 举报

在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()方法有两个参数, 第一个参数为要过滤的字段, 第二个为指定当前字段类型, 默认为字符型

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:46395次
    • 积分:1295
    • 等级:
    • 排名:千里之外
    • 原创:84篇
    • 转载:19篇
    • 译文:0篇
    • 评论:5条
    最新评论