gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:08:23 24 4
gpt4 key购买 nike

假设程序将此语句发送到 mysql 服务器:SELECT * FROM tbl_name WHERE column_name = ?,我是否应该验证将传递给占位符的输入,以防可能的缓冲区溢出忽略了 mysql 代码中可能存在的漏洞? Here is a very old buffer overlow for select 。 mysql 5+ 中也存在一些可利用的缓冲区溢出漏洞,但我想大多数都已修复。无论如何,仅仅为了缓冲区溢出就应该检查输入大小(或允许任何大小时的格式)吗?

附注应用程序的堆栈/管道中有许多元素/级别您无法控制它们(在控制输入之前和之后)。缓冲区溢出验证是不是太过分了?

最佳答案

这取决于输入的来源。如果它来自您无法控制的外部源(例如,输入被输入到 Web 表单中),那么您绝对应该对其进行验证,并且只接受实际可能出现在 column_name 列中的值。

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

关于mysql - 是否应该仅仅为了缓冲区溢出而验证输入(对于 MySQL 选择)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24311862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com