这个MySQL语句在PHP脚本中的安全性如何?
-
05-07-2019 - |
题
这个MySQL语句在PHP中构建的安全性如何?是否容易受到SQL注入?
$sql = sprintf("INSERT IGNORE INTO my_table VALUES(%d, %d, 1, NOW())",
mysql_escape_string(这个MySQL语句在PHP中构建的安全性如何?是否容易受到SQL注入?
<*>SESSION['client']['id']),
mysql_escape_string(这个MySQL语句在PHP中构建的安全性如何?是否容易受到SQL注入?
<*>POST['id']));
解决方案
是的,因为%d只会产生一个不需要转义字符串的数字。使用单引号也可以提高速度。所以安全快捷的方式是:
$sql = sprintf('INSERT IGNORE INTO my_table VALUES(%d, %d, 1, NOW())', 是的,因为%d只会产生一个不需要转义字符串的数字。使用单引号也可以提高速度。所以安全快捷的方式是:
<*>SESSION['client']['id'], 是的,因为%d只会产生一个不需要转义字符串的数字。使用单引号也可以提高速度。所以安全快捷的方式是:
<*>POST['id']);
其他提示
不,它不应该是脆弱的。
以下是有关如何在 PHP 中保护 SQL 查询的详细文章。
http://www.tech- evangelist.com/2007/11/05/preventing-sql-injection-attack/
对我来说很好看。
实际上,在这种情况下是否需要使用mysql_escape_string,因为sprintf(“%d”)只能产生一个数字?
不隶属于 StackOverflow