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 相关文章推荐
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
深入密码加salt原理的分析
Jun 06 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
更改localhost为其他名字的方法
Feb 10 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
PHP中Restful api 错误提示返回值实现思路
Apr 12 PHP
PHP+MySQL实现消息队列的方法分析
May 09 PHP
PHP PDOStatement::errorInfo讲解
Jan 31 PHP
PHP判断是否微信访问的方法示例
Mar 27 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 PHP
PHP 构造函数和析构函数原理与用法分析
Apr 21 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 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中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
Python复制目录结构脚本代码分享
2015/03/06 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
类如何去实现接口
2013/12/19 面试题
函授本科自我鉴定
2013/11/03 职场文书
机械绘图员岗位职责
2013/11/19 职场文书
餐厅总厨求职信
2014/03/04 职场文书
小学校本培训方案
2014/06/06 职场文书
趣味运动会广播稿
2014/09/13 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
初中语文教学研修日志
2015/11/13 职场文书
详解Redis主从复制实践
2021/05/19 Redis
vue+spring boot实现校验码功能
2021/05/27 Vue.js
mysql脏页是什么
2021/07/26 MySQL