我正在用 Python 编写一个程序,它将充当服务器并接受来自客户端的数据,对数据量施加硬性限制是个好主意吗?如果是的话,为什么?
更多信息: 因此,某些聊天程序会限制每次发送(即每次用户按下发送键)可以发送的文本量,因此问题归结为是否存在合法原因,如果有,那是什么?
最佳答案
您很可能见过防止“额外”传入数据的代码。这通常是由于缓冲区溢出的可能性,即复制到内存中的额外数据超出了预分配的数组,并用攻击者代码覆盖了可执行代码。用 C 等语言编写的代码通常会进行大量长度检查,以防止此类攻击。 gets 和 strcpy 等函数被替换为更安全的函数,如 fgets 和 strncpy,它们具有长度参数以防止缓冲区溢出。
如果您使用像 Python 这样的动态语言,您的数组会调整大小,这样它们就不会溢出并破坏其他内存,但您仍然必须小心清理外部数据。
由于数据库字段大小等原因,聊天程序可能会限制消息的大小。如果您传入的消息中 80% 为 40 个字符或更少,90% 为 60 个字符或更少,98% 为 80 个字符或更少,为什么要让您的消息文本字段允许每条消息 10k 个字符?
关于python - 接收套接字大小限制好不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/203758/