是否应该仅仅为了缓冲区溢出而验证输入(对于MySQL选择)?

是否应该仅仅为了缓冲区溢出而验证输入(对于MySQL选择)?,mysql,validation,buffer-overflow,Mysql,Validation,Buffer Overflow,假设一个程序将此语句发送到mysql服务器:从tbl_name中选择*,其中column_name=,我是否应该仅仅为了mysql代码中可能存在的缓冲区溢出漏洞而验证将传递给占位符的输入。MySQL5+中也存在一些可利用的缓冲区溢出漏洞,但我想大多数漏洞都是固定的。不管怎样,如果仅仅为了缓冲区溢出而允许任何大小,是否应该检查输入大小或格式 另外,在应用程序的堆栈/管道中有许多元素/级别,在控制输入之前和之后,您都无法对它们进行控制。缓冲区溢出验证是否过度了?这取决于此输入来自何处。如果它来自您无

假设一个程序将此语句发送到mysql服务器:从tbl_name中选择*,其中column_name=,我是否应该仅仅为了mysql代码中可能存在的缓冲区溢出漏洞而验证将传递给占位符的输入。MySQL5+中也存在一些可利用的缓冲区溢出漏洞,但我想大多数漏洞都是固定的。不管怎样,如果仅仅为了缓冲区溢出而允许任何大小,是否应该检查输入大小或格式


另外,在应用程序的堆栈/管道中有许多元素/级别,在控制输入之前和之后,您都无法对它们进行控制。缓冲区溢出验证是否过度了?

这取决于此输入来自何处。如果它来自您无法控制的外部源,例如,输入被输入到web表单中,您应该明确验证它,并且只接受可能实际出现在列\名称列中的值


如果您接受由于无效字符、无效长度等原因可能永远不会出现在该列中的值,那么将该值传递给MySQL将是一种资源浪费。您可以在源代码处停止它,并要求输入有效。因此,无论是否存在缓冲区溢出等潜在的安全问题,验证输入都是一个好主意。

为了安全起见,您应该始终进行验证