获取可插入任何给定字段的最大字符长度

时间:2018-09-10 12:48:17

标签: mysql

我正在尝试保护我的后端免受可能的恶意POST攻击。

每个后端方法在JSON中期望有一组特定的变量,这些变量与mysql表中的字段相对应,因此我认为,如果我将这些方法中的任何方法中可接收的最大字符数限制为这些字段可能会加上json格式的开销。

如何找出表中所有字段的字符串表示形式的最大长度?

phpmyadmin在查看似乎是我想要的表的结构时,在每个字段的类型旁边显示一个(数字),例如UNSIGNED INT最多可以包含10个字符,UNSIGNED BIGINT为20,而CHAR( 127)是127 ..但我不确定这个数字的真正含义。

1 个答案:

答案 0 :(得分:1)

您可以从MySQL查询元数据(比我显示的还要多)。

select COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH,
    NUMERIC_SCALE, NUMERIC_PRECISION
from information_schema.columns
where table_name = '<table_name>'
and table_schema = '<schema_name>'

这将为您提供所需的内容。

我不确定您的基本计划是否会奏效。 Web服务器仍将接收该请求,并且必须将其发送给您以供您分析,这将花费大量的开销。但这并不会影响到它的切断...所以我想这将是有益的。

更新

您可以通过以下相关问题中的信息来限制帖子的大小:Is there a max size for POST parameter content?