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 相关文章推荐
一个程序下载的管理程序(一)
Oct 09 PHP
PHP获取文件绝对路径的代码(上一级目录)
May 29 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
PHP COOKIE及时生效的方法介绍
Feb 14 PHP
CI框架中zip类应用示例
Jun 17 PHP
php使用google地图应用实例
Dec 31 PHP
Thinkphp中的curd应用实用要点
Jan 04 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
PHP7.0版本备注
Jul 23 PHP
PHP获取指定时间段之间的 年,月,天,时,分,秒
Jun 05 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 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批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
sharp.js安装过程中遇到的问题总结
2020/04/02 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
详细介绍Python中的偏函数
2015/04/27 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
Python 互换字典的键值对实例
2019/02/12 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
sort命令的作用和用法
2013/08/25 面试题
大学生毕业求职简历的自我评价
2013/10/24 职场文书
升学宴主持词
2014/04/02 职场文书
活动总结的格式
2014/05/07 职场文书
三八活动策划方案
2014/08/17 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
国庆节慰问信
2015/02/15 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js