thinkphp中防止xss攻击的方法

发布时间 - 2019-07-03 00:00:00    点击率:

● xss(跨站脚本攻击)两种形式:输入js代码或者html代码导致页面乱。

● XSS(跨站脚本攻击)可以用于窃取其他用户的Cookie信息,要避免此类问题,可以采用如下解决方案:

直接过滤所有的JavaScript脚本;

转义Html元字符,使用htmlentities、htmlspecialchars等函数;

系统的扩展函数库提供了XSS安全过滤的remove_xss方法;

新版对URL访问的一些系统变量已经做了XSS处理。

用户提交的表单信息时候,该表单里边有可能存在相关的“代码”(html/css/js等代码),这样代码会在信息显示的时候对页面效果造成干扰。

1、下载htmlpurifier,解压后将library文件夹放到ThinkPhp的插件文件夹并在分组的common文件夹中创建function.php

2、在function,php中创建防止xss攻击方法

3.我们可以将从post中得到的数据先通过hThinkphp系统自带的I()方法来进行数据过滤然后在通过调用函数fanXSS进行过滤即可

举以下的例子:

在thinphp开发后台过程中需要添加编辑器,要让编辑器正常显示就要设置I函数不过滤。

现在的问题来了,如果不过滤就会被XSS攻击如果过滤在线编辑器就不好使了,解决的办法应该是有选择性的过滤,

我们可以一个开源的过滤的包:htmlpurifier包。

把下载的包解压到跟目录改名为HTMLpurifier

创建一个函数

然后修改配置文件config.php让I函数使用这个函数来过滤:

现在网站中I函数过滤时使用的就是我们写的这个函数:有选择性的过滤只过滤危险代码。

 

网站就很安全了!

本文来自ThinkPHP框架技术文章栏目:http://www./phpkj/thinkphp/


# thinkphp  # php  # JavaScript  # css  # html  # xss  # Cookie  # JS  # function  # http  # 编辑器  # 我们可以  # 表单  # 就会  # 来了  # 是有  # 有可能  # 两种  # 会在  # 并在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用花生壳三步快速搭建专属网站?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  如何用低价快速搭建高质量网站?  怎么用AI帮你为初创公司进行市场定位分析?  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何在云主机上快速搭建多站点网站?  教你用AI将一段旋律扩展成一首完整的曲子  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  如何在IIS中新建站点并配置端口与IP地址?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  如何在云服务器上快速搭建个人网站?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Mybatis 中的insertOrUpdate操作  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  微信小程序 input输入框控件详解及实例(多种示例)  如何快速搭建二级域名独立网站?  中国移动官方网站首页入口 中国移动官网网页登录  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  制作企业网站建设方案,怎样建设一个公司网站?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  如何破解联通资金短缺导致的基站建设难题?  如何快速上传建站程序避免常见错误?  如何利用DOS批处理实现定时关机操作详解  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  桂林网站制作公司有哪些,桂林马拉松怎么报名?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  javascript日期怎么处理_如何格式化输出  如何快速上传自定义模板至建站之星?  EditPlus 正则表达式 实战(3)  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  如何用y主机助手快速搭建网站?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  韩国服务器如何优化跨境访问实现高效连接?  iOS UIView常见属性方法小结  使用Dockerfile构建java web环境  如何用已有域名快速搭建网站?  Laravel中的Facade(门面)到底是什么原理  如何彻底删除建站之星生成的Banner?  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  如何用PHP快速搭建高效网站?分步指南  Laravel怎么调用外部API_Laravel Http Client客户端使用  如何快速搭建虚拟主机网站?新手必看指南  米侠浏览器网页图片不显示怎么办 米侠图片加载修复