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 相关文章推荐
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
php/js获取客户端mac地址的实现代码
Jul 08 PHP
php获取淘宝分类id示例
Jan 16 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
浅谈PHP中的面向对象OOP中的魔术方法
Jun 12 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
Oct 30 PHP
如何使用php生成zip压缩包
Apr 21 PHP
关于PHP数组迭代器的使用方法实例
Nov 17 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
中篇:安装及配置PHP
2006/12/13 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
pycharm 使用心得(五)断点调试
2014/06/06 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
Python原始套接字编程实例解析
2020/01/29 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
汽车销售顾问求职自荐信
2014/01/01 职场文书
初一体育教学反思
2014/01/29 职场文书
新年主持词
2014/03/27 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
祝寿主持词
2015/07/02 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python