码迷,mamicode.com
首页 > 数据库 > 详细

mysql中sql注入的随笔

时间:2016-01-13 23:34:18      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

当使用如下登录代码时:就会引发sql注入问题

怎么注入呢?

‘or 1=1 #

就可以了。

为什么呢?

首先or:在sql中是或者,只要满足前一个或后一个条件即可,只要所以不论你是 ‘or 1=1 #还是 ‘or 2=2 #,都可以。

#: 是注释的意思,在sql中注释掉后面的密码判断。

所以这一段不用不用密码即可输入成功,

怎么办呢?

在php中,可以有很多方法。。。。就不举例了。

<!doctype html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form action="doAction.php" method="post">
    用户名:<input type="text" name="username"/><br/>
    密码:<input type="password" name="password"/><br/>
    <input type="submit" value="submit" />
</form>
</body>
</html>
<?php
header(‘content-type:text/html;charset=utf8‘);
$username = $_POST[‘username‘];
$password = $_POST[‘password‘];
try {
    $pdo = new PDO(‘mysql:host=localhost;dbname=test‘, ‘root‘, ‘root‘);

    $sql = "SELECT * FROM user WHERE username=‘{$username}‘ AND password=‘{$password}‘";
    $stmt = $pdo->query($sql);
    echo $sql;
    echo $stmt->rowCount();
} catch (PDOException $e) {
    echo $e->getMessage();
}

 

mysql中sql注入的随笔

标签:

原文地址:http://www.cnblogs.com/tumio/p/5128771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!