ThinkPHP2.x防范XSS跨站攻击的方法


Posted in PHP onSeptember 25, 2015

本文实例讲述了ThinkPHP2.x防范XSS跨站攻击的方法。分享给大家供大家参考。具体如下:

一直使用ThinkPHP2.x,通过乌云有向提交了ThinkPHP XSS攻击的bug,抽时间看了一下。

原理是通过URL传入script标签,ThinkPHP异常错误页面直接输出了script。

原理:

http://ask.lenovo.com.cn/index.php?s=1%3Cbody+onload=alert(1)%3E

其中m的值是一个不存在的module,同时是一个完全的script,在异常错误页面中被执行实现XSS跨站攻击。

防范方法:

找到异常错误页面模板ThinkException.tpl.php(2,x),think_exception.tpl(3.x)有两个地方要修改:

第57行

echo($_SERVER['PHP_SELF'])

改为
echo strip_tags($_SERVER['PHP_SELF'])

第62行
echo $e['message']

改为
echo strip_tags($e['message'])

另外,ThinkPHP自3.0开始官方已经对TP变量GROUP_NAME,MODULE_NAME,ACTION_NAME,__URL__,__SELF__,__APP__,$_SERVER['PHP_SELF']做了安全处理。

PS:安全不是框架的责任,大家在开发的时候须自己注意。

希望本文所述对大家基于ThinkPHP框架的php程序设计有所帮助。

PHP 相关文章推荐
一个很方便的 XML 类!!原创的噢
Oct 09 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
php HtmlReplace输入过滤安全函数
Jul 03 PHP
第五章 php数组操作
Dec 30 PHP
PHP中spl_autoload_register()和__autoload()区别分析
May 10 PHP
Linux下手动编译安装PHP扩展的例子分享
Jul 15 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
Feb 15 PHP
如何在PHP中使用数组
Jun 09 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
Sep 25 #PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 #PHP
PHP生成随机字符串(3种方法)
Sep 25 #PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 #PHP
十个PHP高级应用技巧果断收藏
Sep 25 #PHP
PHP中的Session对象如何使用
Sep 25 #PHP
如何解决PHP无法实现多线程的问题
Sep 25 #PHP
You might like
基于文本的访客签到簿
2006/10/09 PHP
MySQL数据源表结构图示
2008/06/05 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
window.open的功能全解析
2006/10/10 Javascript
Code:findPosX 和 findPosY
2006/12/20 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
vue2.0 路由模式mode="history"的作用
2018/10/18 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
python中树与树的表示知识点总结
2019/09/14 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
英国儿童图书网站:Scholastic
2017/03/26 全球购物
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
超市国庆节促销方案
2014/02/20 职场文书
办公室副主任职责范本
2014/03/08 职场文书
公司贷款承诺书
2014/05/30 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
应用外语系自荐信
2014/06/26 职场文书
个人创业事迹材料
2014/12/30 职场文书
2015年工商所工作总结
2015/05/21 职场文书
欠条样本
2015/07/03 职场文书
酒店厨房管理制度
2015/08/06 职场文书