我们在应用程序中进行了一次验证,将用户的名字和姓氏长度限制为255个字符。我们应该这样做有什么技术原因吗?我想知道是否存在不限制字符串长度的安全问题或风险。我们正在使用Postgres的text
列。
答案 0 :(得分:1)
Text
=可变的无限长度。如果您放置限制器,为什么不使用varchar(255)
?
出于安全方面的考虑,性能限制器很好。如果您的数据库文件很重,并且有人向您的text
发送垃圾邮件,则数据类型超过8 KB。这将使您的数据库很繁重,在最坏的情况下,它可能Break Down
。.
编辑:
如果要存储没有特定上限的长字符串,请使用 文本或字符变化而没有长度说明符,而不是 构成任意长度限制。
回到您最初的问题“ 我们应该验证字符串字段的最大长度”吗?
当看到文档说的时候。.最好将其设置为Varchar(255)
而不是Varchar
而没有长度说明符,并在应用程序端进行限制器
为了性能:
长字符串由系统自动压缩,因此 磁盘上的物理需求可能更少。也很长的值 存储在后台表中,以免干扰快速 访问较短的列值。
我会说Postgresql很棒:)