免费注册 查看新帖 |

  平台 论坛 博客 文库
12下一页
最近访问板块
查看: 159945 | 回复: 12

mysql中"set character_set_client=BINARY"的作用到底是什么? [复制链接]

      论坛徽章:
      0
      1 [收藏(0)] [报告]
      发表于 2018-01-15 20:36 |只看该作者 |倒序浏览

      来源:秦皇岛 网址:http://www.mxy4grjo.cn/a/www.sdyaxingcaigang.com/

        这些保暖“智商税”,你交过吗? 五、联系方式如今,伴随着各种各样双层油罐的创建,车子给油也愈来愈便捷,但安全问题也不可忽视。

      播报:
        •   选择移动式焊烟净化器的原因1.移动式焊烟净化器属于单机型除尘器,整机出厂,插电即用,省时省力。小苏打的用途可食用的小苏打粉宜用在饮食、厨房相关的清洁上,小苏打,工业用的小苏打粉宜用在其他居家清洁上。大连理工大学添加大连理工大学学姐微信,或微信搜索公众号“考研派之家”,关注[]微信公众号,在考研派之家微信号输入[]即可在手机上查看相对应。

            考生报名时只填报一个招生单位的一个专业。矩阵是线性代数的重要运算单位,是建立整个学科体系的基础,其概念、运算及理论贯穿线性代数的始终。

            自己的兴趣和专业倾向:调剂不是为了填补空缺,而是为了更好地发挥自己的优势和兴趣,因此选择调剂专业时应该优先考虑自己的兴趣和专业倾向。网上报名信息经考生现场确认后一律不作修改。

            :2022年12月24日至26日;上午8:30--11:30,下午14:00--17:0012月24日上午思想政治理论/管理类综合能力12月24日下午外国语12月25日上午业务课一12月25日下午业务课二12月26日考试时间超过3小时或有使用画板等特殊要求的考试科目04报名流程考生应在规定时间内登录中国研究生招生信息网(公网网址http://,教育网址http://,以下简称研招网)进行报名。我们特咨询了网易公司,网易公司相关负责人表示:“因来自八方的询盘邮件过多,同时部分八..

          重点推荐:这些保暖“智商税”,你交过吗?   7、去除油垢  用可食用的小苏打来清洗锅碗瓢盆,能够有效去除油污,而且因为小苏打本身就是可以食用的,所以说如果没沖干净,吃进去也不会对身体造成危害。教育部公布《2018年全国硕士研究生招生考试考生进入复试的初试成绩基本要求》(国家),2018年全国硕士研究生复试录取工作全面展开。

          这些保暖“智商税”,你交过吗?

          rt,为了防止宽字节,很多资料上都说可以在客户端设置“set character_set_client=BINARY”,但是这句话的含义到底是什么呢?假如我目前客户端的程序是这么设置的:
          <?php

          mysqli_query($conn, "set character_set_connection=GBK,set character_set_results=GBK,set character_set_client=BINARY");

          ...
          ...
          ?>





          论坛徽章:
          93
          2 [报告]
          发表于 2018-01-16 15:27 |只看该作者
          本帖最后由 seesea2517 于 2018-01-16 16:45 编辑

          没怎么用过php,不过看着应该就用 set names 来统一设置三者字符集就可以了。
          你这个设置是客户端单独用不同的字符集,二进制字符集就是不做转换,直接存储、传输字节内容。由于你的配置里连接用的是 GBK,那么传到客户端来的数据也就用 GBK 来解释了。

          BINARY:二进制字符集相关说明:https://dev.mysql.com/doc/refman/5.7/en/charset-binary-set.html
          php 连接设置的FAQ:https://dev.mysql.com/doc/refman ... gui-not-display-cjk

          论坛徽章:
          0
          3 [报告]
          发表于 2018-01-16 16:21 |只看该作者
          @seesea2517 谢谢了!如果用“set names GBK”的话,是存在宽字节注入漏洞的。比如发起请求"http://xxx.com/index.php?a=%df'"。经服务端转义后,a的值会变成%df%5c',而%df%5c是一个汉字,这相当于把单引号给逃离出来了,可以发起sql注入攻击。
          如果设置“character_set_client=BINARY”,即使“不做转换、直接存储”,那么mysql在解析sql之前,sql中a的内容还是%df%5c',按照这个逻辑,按说还是存在漏洞的。因此还是想不明白在防御攻击的角度上,这个binary为什么能防住。

          论坛徽章:
          0
          4 [报告]
          发表于 2018-01-16 16:23 |只看该作者
          @seesea2517 谢谢了!如果用“set names GBK”的话,是存在宽字节注入漏洞的。比如发起请求:
          1. http://xxx.com/index.php?a=%df'
          复制代码

          经服务端转义后,a的值会变成%df%5c',而%df%5c是一个汉字,这相当于把单引号给逃离出来了,可以发起sql注入攻击。
          如果设置“character_set_client=BINARY”,即使“不做转换、直接存储”,那么mysql在解析sql之前,sql中a的内容还是%df%5c',按照这个逻辑,按说还是存在漏洞的。因此还是想不明白在防御攻击的角度上,这个binary为什么能防住。

          论坛徽章:
          0
          5 [报告]
          发表于 2018-01-16 16:31 |只看该作者
          谢谢了!如果用“set names GBK”的话,是存在宽字节注入漏洞的。比如发起请求:
          1. http://xxx.com/index.php?a=%df'
          复制代码

          经服务端转义后,a的值会变成%df%5c',而%df%5c是一个汉字,这相当于把单引号给逃离出来了,可以发起sql注入攻击。
          如果设置“character_set_client=BINARY”,即使“不做转换、直接存储”,那么mysql在解析sql之前,sql中a的内容还是%df%5c',按照这个逻辑,按说还是存在漏洞的。因此还是想不明白在防御攻击的角度上,这个binary为什么能防住。

          论坛徽章:
          0
          6 [报告]
          发表于 2018-01-16 19:40 |只看该作者
          谢谢了!如果用“set names GBK”的话,是存在宽字节注入漏洞的。比如发起请求:
          1. http://xxx.com/index.php?a=%df'
          复制代码
          经服务端转义后,a的值会变成:
          1. %df%5c'
          复制代码
          而%df%5c是一个汉字,这相当于把单引号给逃离出来了,可以发起sql注入攻击。
          如果设置character_set_client=BINARY,即使不做转换、直接存储,那么mysql在解析sql之前,sql中a的内容还是:
          1. %df%5c'
          复制代码
          按照这个逻辑,按说还是存在漏洞的。因此还是想不明白在防御攻击的角度上,这个binary为什么能防住。

          论坛徽章:
          0
          7 [报告]
          发表于 2018-01-16 19:41 |只看该作者
          谢谢了!如果用“set names GBK”的话,是存在宽字节注入漏洞的。比如发起请求:
          1. http://xxx.com/index.php?a=%df’
          复制代码
          经服务端转义后,a的值会变成:
          1. %df%5c’
          复制代码
          而%df%5c是一个汉字,这相当于把单引号给逃离出来了,可以发起sql注入攻击。
          如果设置character_set_client=BINARY,即使不做转换、直接存储,那么mysql在解析sql之前,sql中a的内容还是:
          1. %df%5c’
          复制代码
          按照这个逻辑,按说还是存在漏洞的。因此还是想不明白在防御攻击的角度上,这个binary为什么能防住。

          论坛徽章:
          0
          8 [报告]
          发表于 2018-01-17 08:30 |只看该作者
          本帖最后由 danieluec 于 2018-01-17 08:32 编辑

          谢谢~
          从安全的角度看,如果二进制字符集就是不做转换、直接存储、传输字节,那么按照mysql的编码转换流程(client->connection->server),将client的编码设置为binary也是防不住注入漏洞的。所以想弄明具体binary的功能和整个编码过程。

          论坛徽章:
          93
          9 [报告]
          发表于 2018-01-17 09:33 |只看该作者
          回复 20# danieluec

          防注入应该有一些相关的专题文章或讨论,楼主有发现有价值的欢迎分享给大家哈。

          论坛徽章:
          146
          10 雷锋28网[报告]
          发表于 2018-01-17 11:28 |只看该作者
          回复 1# danieluec

          回帖以标注成精华帖,感谢您对社区内容的贡献
          12下一页
          返回列表
          雷锋28网 雷锋28网 数据库技术 MySQL mysql中"set character_set_client=BINARY"的作用到 ...
          您需要登录后才可以回帖 登录 | 注册

          本版积分规则 发表回复

            

          北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
          未成年举报专区
          中国互联网协会会员  联系我们:huangweiwei@itpub.net
          感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

          清除 Cookies - ChinaUnix - Archiver - WAP - TOP
            
          分享:

          收藏

          --

          --

          无障碍浏览