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 相关文章推荐
请离开include_once和require_once
Jul 18 PHP
使用PHP编写的SVN类
Jul 18 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
php中的观察者模式简单实例
Jan 20 PHP
typecho插件编写教程(四):插件挂载
May 28 PHP
php实现paypal 授权登录
May 28 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
浅谈PHP无限极分类原理
Mar 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
真正的ZIP文件操作类(php)
2007/07/21 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
ThinkPHP写第一个模块应用
2012/02/20 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
php自定义分页类完整实例
2015/12/25 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
JS option location 页面跳转实现代码
2008/12/27 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
python中常用检测字符串相关函数汇总
2015/04/15 Python
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
Python实现学生成绩管理系统
2020/04/05 Python
Python补齐字符串长度的实例
2018/11/15 Python
基于matplotlib xticks用法详解
2020/04/16 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
教师的实习自我鉴定
2013/12/17 职场文书
工作疏忽检讨书
2014/01/25 职场文书
求职信需要的五点内容
2014/02/01 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
关于保护环境的建议书
2014/08/26 职场文书
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技
cypress测试本地web应用
2022/06/01 Javascript