我应该限制用户输入的长度吗



我问过自己这个问题,因为我很少看到有人在后台检查用户输入的长度。我一般应该这样做吗?

我总是使用PHP的htmlentities()函数验证用户输入,以防止XSS,但是我也应该检查字符串长度吗?

我想,在插入数据库时,这最多可能会导致数据库错误,但是否存在任何真正的安全问题?

在数据库中存储数据时,列有限制。在尝试存储数据之前,最好先验证字段的长度。否则,你将不得不处理这些异常,甚至更糟的是,向用户返回意外错误,而不给他们修复错误的机会

如果存储数据没有限制,则无需验证文本字段的长度。尽管您需要注意数据库所施加的限制。

例如,

  • 要对ORACLE没有限制,您需要使用BLOB。VARCHAR的硬限制为4000字节
  • PostgreSQL没有相同的限制——没有限制的VARCHAR类似于TEXT列
  • 在MariaDB上,VARCHAR最多可以有8000个字节

说到安全性,我看不出长度有任何问题,如果你有一个接受BLOB/TEXT的公共表单,添加一个含义限制可能是个好主意,但这不是一个要求。无论如何,你必须添加一个captcha来避免机器人。

在简历中,如果需要,请在后端添加限制,并注意存储系统施加的限制。

相关内容

  • 没有找到相关文章

最新更新