V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
jugelizi
V2EX  ›  MySQL

这样还能注入吗

  •  
  •   jugelizi · 2015-10-23 16:48:03 +08:00 · 3129 次点击
    这是一个创建于 3338 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2015-10-23 17:30:51 +08:00
    “ SELECT * from table_name where user_name='$usr_name'”

    utf-8 的编码,过滤了 usr_name 的空格和单双引号

    是不是就没法注入了啊
    10 条回复    2015-10-25 18:04:31 +08:00
    kimmykuang
        1
    kimmykuang  
       2015-10-23 17:37:42 +08:00 via Android
    多字节注入可破,请用 pdo
    lianz
        2
    lianz  
       2015-10-23 17:40:56 +08:00
    sql 拼接是注入之源,只要有 sql 拼接,就有可能注入。

    PS :
    我就不明白了,你们为了避免注入,费尽心思去做 sql 过滤,为什么就不直接用参数化 sql 呢????
    cxbig
        3
    cxbig  
       2015-10-23 17:42:32 +08:00
    如果是做开发,不要造轮子,用现有的 OOP 解决方案。
    如果是做研究,不妨直接看现有解决方案的源代码。
    SourceMan
        4
    SourceMan  
       2015-10-23 17:44:44 +08:00
    PDO 吧
    bdbai
        5
    bdbai  
       2015-10-23 18:41:15 +08:00 via iPhone
    @lianz 数据库的 escape 函数怎么样?
    a591826944
        6
    a591826944  
       2015-10-23 18:43:09 +08:00
    直接 PDO params bind 啊 拼接是不能过滤注入的。。这都是 古老的流派啊
    lianz
        7
    lianz  
       2015-10-24 11:00:42 +08:00
    @bdbai 我就不懂为什么直接用参数化一了百了为什么你就不想用。为什么那么爱自己一个一个参数过滤,不累吗?每次更新代码都要检查一下是否有参数漏了过滤,不累?风险不高??
    jugelizi
        8
    jugelizi  
    OP
       2015-10-25 10:49:41 +08:00
    @kimmykuang 没有啊 这是别人写的代码 我就是想知道是不是不会实现注入了,宽字节 gbk 的好像是可以 但是 utf 的不是宽字节无法形成单引号注入了啊
    psusfy
        9
    psusfy  
       2015-10-25 11:44:27 +08:00
    @lianz 怪只怪网上垃圾代码太多,孩子们都被带沟里去了
    wizardforcel
        10
    wizardforcel  
       2015-10-25 18:04:31 +08:00
    utf8 下面,比如`\xe9\xbb\x27`,转义的时候会变成`\xe9\xbb\x5c\x27`,然后前面三个构成一个 utf8 字符,后面那个会被单独解析。 gbk 同理。

    php 下`mb_`开头的函数没有问题,但还是推荐使用参数化。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2978 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:39 · PVG 19:39 · LAX 03:39 · JFK 06:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.