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中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
cmd下运行php脚本
Nov 25 PHP
php学习笔记之 函数声明
Jun 09 PHP
PHP+Mysql+jQuery实现动态展示信息
Oct 08 PHP
php 如何获取数组第一个值
Aug 06 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
linux使用crontab实现PHP执行计划定时任务
May 10 PHP
PHP实现文件下载详解
Nov 27 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
PHP chr()函数讲解
Feb 11 PHP
php设计模式之单例模式用法经典示例分析
Sep 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 socke 向指定页面提交数据
2008/07/23 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
Python返回真假值(True or False)小技巧
2015/04/10 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
django静态文件加载的方法
2018/05/20 Python
Python 移动光标位置的方法
2019/01/20 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
python圣诞树编写实例详解
2020/02/13 Python
Python内置函数及功能简介汇总
2020/10/13 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
html如何对span设置宽度
2019/10/30 HTML / CSS
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
留学自荐信
2013/10/10 职场文书
药学专业毕业生求职信
2013/10/20 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
安全员岗位职责范本
2015/04/11 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
体育教师研修感悟
2015/11/18 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android