消毒整数数据库输入

Dan*_* D. 7 php mysql

我有一个通过POST请求获取数据的应用程序.我正在使用此数据将新行插入数据库.我知道使用mysql_real_escape_string()(加上删除%和_)是获取字符串的方法,但整数值呢?现在,我正在使用PHP函数intval().

但是,我想确保这intval()是非常安全的.当变量intval()首先运行时,我看不到攻击者预先形成SQL注入攻击的方式(因为它总是返回一个整数),但是我想确保那些比我有更多经验的人就是这种情况.

谢谢.

Eti*_*mps 21

是的,intval()是安全的.当参数转换为整数时,绝对没有办法执行SQL注入,因为(显然)整数的格式不允许在其中放置SQL关键字(或引号或其他).

  • 你也可以使用`(int)$ id`因为强制转换要比使用`intval($ id)`函数快得多.检查:http://hakre.wordpress.com/2010/05/13/php-casting-vs-intval/ (4认同)