【发布时间】:2011-06-14 22:44:50
【问题描述】:
我最近被告知有 FILTER_VALIDATE_INT 顺便说一句很棒。
我的问题是从网站获取一个整数值,无论它可能来自用户还是从 Web 应用程序生成,并通过查询字符串传递。
值(整数)可以在mysql查询中显示或使用。
我正在尝试为此构建最佳的安全方法。
考虑到这一点,简单地使用是否安全
$myNum = (int)$_GET['num'];
或者
if (filter_var($_GET['num'], FILTER_VALIDATE_INT)) $myNum = $_GET['num'];
另外,请解释一下使用(int)和FILTER_VALIDATE_INT有什么区别
【问题讨论】:
-
为了扩展现有的答案,
FILTER_SANITIZE_NUMBER_INT等同于(int)转换。 -
@mario,你怎么能这么说?不是。
-
这是一个有趣的注释,FILTER_VALIDATE_INT 说 '0011' 不是 int 但 '1111' 是 int。你知道的越多……
标签: php variables input filter