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 相关文章推荐
服务器端解压缩zip的脚本
Dec 22 PHP
php框架Phpbean说明
Jan 10 PHP
判断PHP数组是否为空的代码
Sep 08 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
PHP的命令行命令使用指南
Aug 18 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
php-app开发接口加密详解
Apr 18 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
使用laravel指定日志文件记录任意日志
Oct 17 PHP
PHP并发场景的三种解决方案代码实例
Feb 27 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/10/09 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
JavaScript计划任务后台运行的方法
2015/12/18 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
Python 实现简单的电话本功能
2015/08/09 Python
python 对key为时间的dict排序方法
2018/10/17 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
python中Django文件上传方法详解
2020/08/05 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
中学生期中自我鉴定
2014/04/20 职场文书
大学学习计划书范文
2014/05/02 职场文书
单位工作证明范文
2014/09/14 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
心得体会格式及范文
2016/01/25 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
python缺失值的解决方法总结
2021/06/09 Python
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server