赞
踩
大部分网站都包含搜索功能,根据用户搜索的词去执行服务端的业务逻辑。如果一些黑客在搜索参数包含链接(a)、嵌入其他网页(iframe)、前端代码(script)等html字符,再加上服务端php不加任何处理去解析或者展示了用户请求的参数,就可能出现跨站点脚本(XSS),链接注入,框架注入等安全漏洞。
下面通过直接判断请求字符串是否包含html标记,去屏蔽非法请求,从而杜绝这类攻击。
- // 搜索的php处理页面,如搜索关键词参数为s
- $s = $_GET['s'];
- if (preg_match('/<[^>]+>/', $s) || preg_match('/<[^>]+>/', htmlspecialchars_decode($s))) {
- // echo "搜索的关键词不能包含HTML标签";
- echo "非法参数";
- exit();
- }
- // 不包含HTML标签,后续继续原由的处理……
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。