php自带有验证过滤方法,可以满足大部分的使用场景,不用再自己写正则了。
html
使用htmlentities()函数过滤html输入,它会将字符转换成html实体。但是在默认情况下,htmlentities()函数不会转义单引号,也检测不出输入字符串的字符集。所以正确的使用方式是额外传入2个参数,即第一个参数是输入的字符串,第二个参数设为ENT_QUOTES常量,转义单引号,第三个参数设为输入字符串的字符集。
| 1 | 
 | 
SQL查询
一个低级而常见的错误即是将原始输入数据直接拼接成SQL查询语句,这将导致程序产生SQL注入漏洞。下面将描述一个错误的例子:
| 1 | 
 | 
这时,假如用户构造恶意的输入数据,例如passwd=abc";--,所有用户的密码都将会被设置为abc,很多数据库把--当做注释符。使用PDO预处理语句可以防止这种情况的发生,关于PDO预处理在后面的文章中将讲到。
用户资料信息
PHP提供了filter_var()和filter_input()函数来过滤不同类型的输入:电子邮件地址,URL编码字符串,整数,浮点数,HTML字符,URL和特定范围内的ASCII字符。
| 1 | 
 | 
filter_var()函数如果验证成功,会返回验证的值,如果验证失败,返回false。
ModernPHP 系列全集:传送门