php - filter_var 是个好方法吗?

标签 php security

filter_var 对过滤数据有用吗?它会过滤什么样的不良数据?我确实使用 mysql_real_escape_string 但我想知道添加 filter_var 是否有帮助?

最佳答案

如果可能,为了防止 SQL 注入(inject),请使用准备好的语句。如果不是,请对字符串使用 mysql_real_escape_string,对整数使用 (int) 强制转换或 intval(),对 float 使用 (float) 或 floatval(),对要在 LIKE 语句中使用的字符串使用 addcslashes($input, '%_')。尝试转义要在 RLIKE 语句中使用的字符串时,事情会变得更加复杂。

对于过滤 HTML 内容,最好的方法是 strip_tags(不传递 $allowable_tags),但是……您可能不喜欢/不想要它,在这种情况下,最实惠的解决方案是:

$escaped = htmlspecialchars($input, ENT_QUOTES, $your_charset);

更可靠的解决方案是使用像 HTML Purifier 这样的库。

过滤器函数是可以的,但其中一些比过滤器更多的验证器。根据您的需要,您可能会发现其中一些很有用。

关于php - filter_var 是个好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/659197/

相关文章:

php - 如何在codeigniter中基于关联实体获取数据

c# - 如何使用防伪 token 识别帖子数据被黑客入​​侵

c# - java 与 c# - 哪个在安全性方面更安全?

c++ - 无法从 Windows xp x64 prof 中的用户帐户访问已安装过滤器驱动程序的重分析点目录

security - 使用同一文件的校验和加密文件

PHP 脚本在本地主机上未显示任何错误?

php - 二进制比较给出错误结果 MYSQL

javascript - Dyntable 排序在 Ajax 中根本不起作用

PHP - 值得在变量名中包含数据类型吗?

c# - 黑客能否超越桌面应用程序的互联网 http 休息调用?