zoukankan      html  css  js  c++  java
  • mysql中sql注入的随笔

    当使用如下登录代码时:就会引发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();
    }

     

  • 相关阅读:
    ASM FailGroup验证
    oracle 11g RAC 补丁升级方法
    数据库优化一
    TypeScript(类—继承—多态)
    TypeScript(安装配置—数据类型—函数)
    IE9兼容
    移动端自适应vw、vh、rem
    npm命令随笔
    安卓、IOS兼容问题
    获取页面大小和元素位置offset、client、scroll
  • 原文地址:https://www.cnblogs.com/tumio/p/5128771.html
Copyright © 2011-2022 走看看