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缓存技术的使用说明
Aug 06 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
PHP array_multisort() 函数的深入解析
Jun 20 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
php遍历解析xml字符串的方法
May 05 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
php实现记事本案例
Oct 20 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
javascript克隆对象深度介绍
2012/11/20 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
JS实现简单tab选项卡切换
2019/10/25 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
python时间整形转标准格式的示例分享
2014/02/14 Python
Python lxml模块安装教程
2015/06/02 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
C语言开发工程师测试题
2016/12/20 面试题
函授大专自我鉴定
2013/11/01 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
开学第一天的感想
2015/08/10 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python