gpt4 book ai didi

php - SQL 查询中的 sprintf( '%d' , $tainted ) 是漏洞吗?

转载 作者:行者123 更新时间:2023-12-01 00:05:50 25 4
gpt4 key购买 nike

我确实知道参数化查询,但我有几个旧网站,我在这些网站上使用这种方法来清理用户输入:

<?
mysql_query( sprintf( 'SELECT col1 FROM table1 WHERE id = %d', $tainted ) );
?>

请注意,%d 周围没有引号。 $tainted 是否有任何值可能导致此类查询产生意外结果?很容易给出语法错误,但我不太在意。

我对类似的 UPDATE 和 DELETE 查询使用了相同的方法。我应该费心回去修复所有旧查询,还是这里没有漏洞?

最佳答案

不,这不是漏洞。

但这是一个潜在的漏洞:如果一些维护程序员决定执行一个小的更改而忘记了变量可能被污染,或者变量的数据类型从整数更改为字符串(并且%s) 的说明符 - 那么就会有麻烦。

最好一开始就不要去那里(但从实际的角度来看,加强对遗留代码的防御是否值得也不清楚)。

关于php - SQL 查询中的 sprintf( '%d' , $tainted ) 是漏洞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11786309/

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