问题标签 [filter-var]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - filter_var vs htmlentities vs htmlspecialchars
免责声明
这不是关于我们是否应该为数据库输入转义的问题。这是严格查看标题中三个功能之间的技术差异。
有这个问题htmlentities()
讨论和之间的区别htmlspecialchars()
。但是,它并没有真正讨论filter_var()
,我在 Google 上找到的信息更像是“确保在回显之前避开用户输入!”
我的问题是:
- 为什么都
htmlspecialchars()
和htmlentities()
常用过来filter_var()
? - 使用会不会影响性能
filter_var()
? - 是
filter_var()
不是像其他两个选项一样安全? - 是否有任何其他原因不使用以下内容对用户输入进行编码之前
echod
filter_var($var, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
php - php filter var 返回错误的结果
我想使用 php filer_var 函数,但它返回了错误的结果,似乎它没有考虑范围:
这不应该是整数,因为 54 不在 0 和 24 之间,但它返回 true 并回显“整数”。
这里有什么问题?
谢谢。
php - PHP 过滤器变量
我只是想知道使用 filter_var() 进行清理是否有任何好处或缺点,而不是使用像 addslashes() stripslashes() htmlentities() 等。
使用 filter_vars 或其他功能会更有益吗?
我没有任何具体的想法,只是更多的询问而不是问题。
谢谢!
.htaccess - .htaccess 和过滤 $_GET
您好,我正在编写个人资料页面脚本,在此脚本中,我检查传入的 $_GET 变量的值并验证它是否为整数,然后根据 $_SESSION 值验证该值以确认他们只能访问自己的帐户. 代码如下所示:
例如,如果我尝试传递 '0'、'2-2'、'abc' 或没有值作为 $_GET 值,则此查询正确失败并将它们重定向到主页。
然后我尝试做的是更改我的 .htaccess 文件以将 URL 映射到“profile/1”,只是为了整理它。
我现在发现页面不再使用上面那些无效的 $_GET 参数重定向。它只是试图找到'profile/abc.
有谁知道为什么?
php - 在 Adodb for PHP 中清理 SQL 查询的输入
我正在优化一个使用ADODBforPHP的平台。我使用了一个清理功能,可以避免以前版本的 PHP (mysql_escape_string) 的 sql 注入,这显然不再支持也不推荐。
对于那些没有使用过这个库的人,它是这样的:
更新某些行时的示例:
在这种情况下,q($string)是我正在尝试改进的清理功能。我无权在此服务器中安装 PDO,因此这不是一个选项。
当前的 q() 使用 mysql_real_escape_string 没有第二个参数:
有人在另一个论坛上推荐了filter_var ($value, FILTER_SANITIZE_STRING),但老实说,我没有将它用于这些问题。
有关如何提高此功能用途的安全性的任何建议?
更新 1
php - PHP 何时使用 filter_var 而不是内置的 php 函数
我注意到你可以用 PHP 函数做很多事情filter_var
,也可以用其他函数做。
例如,过滤器FILTER_VALIDATE_REGEXP
等FILTER_SANITIZE_ENCODED
在 PHP 中也有各自的专用功能。
我应该什么时候使用filter_var
,什么时候应该使用 PHP 函数?有什么优点和缺点?
php - 为什么 PHP filter_var 说这是一个有效的电子邮件地址?
当用户注册我的网站时,我使用filter_var
PHP 函数来验证电子邮件地址。
我使用帖子中的这段代码:
然后我做:
现在当我var_dump($email)
,我得到输出:
我想知道为什么这不会返回假。我认为双引号是不可接受的,那么为什么 PHP 说它是有效的呢?
php - FILTER_VALIDATE_BOOLEAN 的输入值为 false
我希望输入只接受“真”或“假”,所以我试图用它FILTER_VALIDATE_BOOLEAN
来做到这一点,
它回显错误消息,但不应该。
我怎样才能使它正确?
php - PHP - Filter_var 替代方案?
我构建了一个 php 脚本来输出以表单形式发布的数据,但我遇到了一个问题。网站将运行的服务器运行 PHP 5.1.6。这个版本的 PHP 不支持 filter_var。
我需要在短期内(最好是昨天)知道一个替代方案,并且在 Google 或 Stack Overflow 上找不到直接的东西。
也许这里有人过去遇到过同样的问题并为我提供了快速解决方案?
这段代码:
需要与 PHP 5.1.6 兼容,所以邮箱地址经过真实性检查,两个字段都没有使用恶意代码。有小费吗?
非常感谢!
php - 使用 filter_var 的 PHP 验证布尔值
我filter_var
用来验证布尔值,但没想到它无法识别FALSE
。为什么会这样?
filter_var(FALSE, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)
返回
null