我陷入了一个SQL注入问题。我的页面显示如下表的数据:SQL注入|更改ID值
<input type="checkbox" name="id[]" value="<?php echo $row['id']; ?>" /><?php echo $row['data']; ?><br />
我怎么能肯定的是,提交的值是该特定行的id的不是一个随机数“注射”的页面?
很显然,我将开始检查该ID返回真到is_numeric()
/通过mysql_real_escape_string().
得到它。然后,我想到了两个选项:
添加一个隐藏的输入与副本的$ row ['data'],这样我就可以在 之前检查id和数据之间的对应关系
mysql_query()
将行的ID从一个自动递增的数字改为一个大的随机数,这样我就可以降低幸运命中的几率。
我有错吗?有什么更好的想法 感谢您的帮助!
我首先阅读[如何防止SQL注入PHP?](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)和[为什么我不应该在PHP中使用mysql_ *函数?](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – 2013-08-21 00:32:50
感谢您的提示! – Greg