我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL列长度限制有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL列长度限制有哪些

本篇文章给大家分享的是有关MySQL列长度限制有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

  超长SQL怎么查询

  max_packet_size

  这个东西是用来限制mysql客户端和服务器通信数据包的长度的,比如一个查询为“select*fromuserwhere1”,那么这个长度仅仅几十个字节,所以不会超标。在绝大多情况下,我们很难会超过mysql的默认限制1M(可以想象一下,1M的SQL语句还是很长的)。这里插一句,看到该文之后,我终于清楚我当初用PEARDB的INSERT插入数据失败的原因了,很可能就是数据长度超标。对于MySQL来说,如果查询MySQL字符串的大小超过了这个限制,mysql将不会执行任何查询操作

  如果访问者有可能控制你的sql长度,那么你的程序可能会受到攻击。哪些情况访问者可能控制sql的长度呢,比如不限制关键字长度的搜索。还有可能就是你的程序如果要将用户的登录作为日志启用,总之凡是涉及到超长sql查询的地方,一定得小心检查自己的sql,防止超长而查询失效。不过说实在的,本人认为这个问题倒不是多大,数据库光里管理员也可以自行设置MySQL的max_packet_size的长度,或者在处理可能超长的SQL查询的时候做一个长度判断。

  MySQL列长度限制有哪些

  这个是该篇文章的重点。MySQL对于插入的字符串,如果长度超过了数据表限制的长度,MySQL将会截取前面部分MySQL字符串插入数据库中,而不会将错误报给web程序。对于粗心的程序员,这个问题可能会导致程序的漏洞,其实目前的wordpress有很多限制,通过这个漏洞攻击应该没有任何作用。下面是原作者的几个假设,如果同时满足这几个条件,获取一个站点的用户名是相当容易的事情,幸运的是目前的wordpress并不太可能会同时满足下面的条件:

  该web应用允许用户注册(开放注册的wordpress满足此条件);

  超级管理员的用户名已知的,比如admin,这样方便攻击者寻找目标(可怜wordpress也满足)

  MySQL使用的是默认的配置(估计大多数都满足)

  注册新用户的时候,程序没有对用户名的长度给予限制(我测试过,wordpress也满足)

  用户名被限制在16个字符(这个和上面的没有关系,仅仅是方便举例)

  下面这个是攻击者是怎么攻击的:

  首先攻击者用已知的超级管理员id如admin注册,那么这个时候程序就会用

  (show/hide)plaintext

  SELECT*FROMuserWHEREusername='admin'

  来检查该ID是否已经存在,如果存在,这不允许注册,当然,攻击者尝试注册admin肯定会失败;

  但是如果攻击者用admin X(admin和x之间有11个或以上的空格)来注册呢,按照上面的判断,由于adminx不存在数据库中,所以当然就能注册成功了,事实上wordpress2.6.1之前的版本确实可以这样,由于列长度的限制在16个字符内,所以末尾的x就被截掉了,那么现在数据库中就存在两个一模一样的用户admin了。(旁白:糟糕,那我的程序不是都要去修改。其实没有必要,你只要把ID设置为UNIQUE就可以了,于是乎,下面的问题就和你没有关系了)

  攻击者继续,这个时候攻击者就顺利的注册了admin这个用户名,然后攻击者用admin和自己的密码登录进入账户管理(wordpress即使注册了也无法登陆),由于真正的admin的帐号先于攻击者admin注册,所以在账户信息页面,显示的信息非常有可能就是真正admin的信息,包括密码提示和email等,这个时候攻击者就可以对admin的信息进行任意修改,包括密码和密码找回。

  所以,写web程序的你,是不是该去检查一下自己的程序是否有此类的漏洞呢。

以上就是MySQL列长度限制有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL列长度限制有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL ENUM 有哪些限制?

以下是 MySQL ENUM 的限制 -枚举值不能是表达式我们不能使用表达式作为枚举成员,即使是计算结果为字符串值的表达式。示例例如,我们甚至可以使用 CONCAT 函数这会导致对字符串进行求值。以下查询将不起作用 -mysql> crea
2023-10-22

MySQL的sql语句长度限制吗

MySQL的sql语句长度有限制,适用于单个SQL语句的长度以及整个连接中发送的数据包的大小,通常情况下:1、MySQL 5.7版本之前,单个 SQL 语句的长度限制为 64KB;2、MySQL 5.7版本及以后,单个 SQL 语句的长度限
2023-07-25

Oracle怎么限制VARCHAR列的字符长度

在Oracle中,可以通过在创建表时使用VARCHAR2数据类型并指定最大长度来限制VARCHAR列的字符长度。例如,要创建一个名为name的VARCHAR列,最大长度为50个字符,可以使用以下SQL语句:CREATE TABLE tab
Oracle怎么限制VARCHAR列的字符长度
2024-04-09

Mysql之索引长度限制方式

MySQL索引长度受限于767字节(B树索引)或255字节(哈希索引)。对于复合索引,长度等于所有列长度之和。若超过限制,可拆分索引、使用前缀索引、虚拟列或全文索引。考虑存储引擎、字符集、编码等因素。遵循最佳实践,如选择合适索引类型,监视使用情况,使用前缀索引或虚拟列,优化索引性能。
Mysql之索引长度限制方式
2024-04-02

mysql 数据长度最大限制问题

my.ini文件中没有设置通信缓冲区的最大长度,默认为1M,故而出现以上错误,在mysql安装文件夹下找到my.ini文件(linux是my.cnf文件)。打开后, 在[mysql]下面新增:default-character-set = utf8修改以下几句
2014-09-20

MySQL怎么修改字段长度限制

要修改MySQL中的字段长度限制,可以使用ALTER TABLE语句。假设要修改表中的字段长度限制,可以按照以下步骤进行操作:1. 使用ALTER TABLE语句指定要修改的表名。2. 使用MODIFY关键字指定要修改的字段。3. 使用数据
2023-10-23

解决mysql中group_concat长度限制的方案

解决mysql中group_concat长度限制的方案 group_concat函数获得group_concat的最大长度两种解决方案 group_concat函数 在mysql中的group_concat函数默认支持的最大
2023-08-17

使用 MySQL 视图有哪些限制?

尽管使用视图有多种好处,但使用 MySQL 视图仍存在以下限制 - 无法创建视图视图索引 - 在 MySQL 中,我们无法在视图上创建索引。这是因为当我们针对视图查询数据时,没有使用索引。 MySQL 会使视图无效 - 假设,如果我们删除或
2023-10-22

SQLite有哪些限制和局限性

SQLite不支持用户并发操作,即同一时间只能有一个用户对数据库进行读写操作,这会导致性能瓶颈。SQLite不支持存储过程、触发器和用户定义函数等高级数据库功能。SQLite不支持远程访问,只能在本地使用。SQLite不支持完整的权限管理系
SQLite有哪些限制和局限性
2024-04-09

编程热搜

目录