作为一名优秀的开发人员,永远不要相信客户端提交的数据是安全的,只有限定数据范围,才能尽可能保证平台安全。
在ThinkPHP中,使用input()函数可以获取GET/POST请求的参数。input()函数的第一个参数是参数名称,第二个参数是默认值,第三个是过滤方法。采用过滤方法能起到一定的安全保护作用,减少SQL注入,XSS攻击事件。下面整理出常用过滤方法作为日常开发人员的参考:
一、参数过滤法
过滤方法 | 作用 |
htmlspecialchars | 预定义的字符转换为 HTML 实体 |
addslashes | 在特殊字符前添加反斜杠,防止SQL注入。 |
trim | 去除字符串的两端空格 |
strip_tags | 过滤掉字符串中的HTML标签 |
strtolower / strtoupper | 将字符串转换统一的小写或大写 |
intval | 将字符串转换为整型 |
floatval | 将字符串转换为浮点型 |
filter_var | 使用特定的过滤器对变量进行过滤 ,如验证邮箱地址、IP地址等 |
过滤方法使用
$id = input('get.id','','intval');
二、使用变量修饰符
修饰符 | 作用 |
---|
a | 强制转换成数组类型 |
s | 强制转换成字符串类型 |
d | 强制转换成整型 |
f | 强制转换成浮点型 |
b | 强制转换成bool型 |
修饰符使用方法
$cid=input('get.cid/d');
$name=('post.name/s');
$ids=input('post.ids/a');