一、攻击
- 万能密码:如 xxx‘or’1该密码拼凑出来的sql语句会直接执行 or’1则满足一切条件
解决方法:将用户传过来的密码加密,如md5等 - 万能用户名:如 xxx‘or 1# 该密码拼凑出来的sql语句会直接执行 or 1 (#:注释掉后面所有剩余的sql)
解决方法:在PHP层面,可以使用addslashes;在MySQL层面,可以用mysqli_real_escape_string函数去转移特殊字符 - GET方式请求:…&…&…or 1 拼接起来的sql语句可能有危险
解决方法:对参数进行类型转换,int,intval - XSS攻击:页面中嵌入了html标签
解决方法:对HTML标签进行实例化,htmlspecialchars(),htmlentities() - 远程文件包含漏洞:http:/ /127.0.0.1/index.php?filename=http:// 192.168.0.1/php.txt,可以直接执行php.txt
解决方法:可用替换掉“/”的方法,$filename = str_replace(‘/’,‘’,$_GET[‘filename’]);
二、输入过滤
- trim:去除字符串左右两端的空白字符串,包括空格、换行、制表符等
- intval:将字符串转换为整形
- strip_tags:去除字符串中的“<>”标签,例<b>测试</b>==》测试;<YY>帆S==》帆S;
- htmlspecialchars:将html标签转化为实体