php 防护xss,PHP的防御XSS注入的终极解决方案


Posted in PHP onApril 01, 2021

PHP的防御XSS注入的终极解决方案【信息安全】【Hack】

一:PHP直接输出html的,可以采用以下的方法进行过滤:

1.htmlspecialchars函数

2.htmlentities函数

3.HTMLPurifier.auto.php插件

4.RemoveXss函数(百度可以查到)

二:PHP输出到JS代码中,或者开发Json API的,则需要前端在JS中进行过滤:

1.尽量使用innerText(IE)和textContent(Firefox),也就是jquery的text()来输出文本内容

2.必须要用innerHTML等等函数,则需要做类似php的htmlspecialchars的过滤(参照@eechen的答案)

三:其它的通用的补充性防御手段

1.在输出html时,加上Content Security Policy的Http Header

(作用:可以防止页面被XSS攻击时,嵌入第三方的脚本文件等)

(缺陷:IE或低版本的浏览器可能不支持)

2.在设置Cookie时,加上HttpOnly参数

(作用:可以防止页面被XSS攻击时,Cookie信息被盗取,可兼容至IE6)

(缺陷:网站本身的JS代码也无法操作Cookie,而且作用有限,只能保证Cookie的安全)

3.在开发API时,检验请求的Referer参数

(作用:可以在一定程度上防止CSRF攻击)

(缺陷:IE或低版本的浏览器中,Referer参数可以被伪造)

更多PHP相关知识,请访问PHP教程!

PHP 相关文章推荐
用PHP生成html分页列表的代码
Mar 18 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
Oct 13 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
Yii框架关联查询with用法分析
Dec 02 PHP
php判断linux下程序问题实例
Jul 09 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
PHP+MySQL实现消息队列的方法分析
May 09 PHP
PHP echo()函数讲解
Feb 15 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
Feb 07 PHP
php+iframe 实现上传文件功能示例
Mar 04 PHP
WordPress多语言翻译插件 - WPML使用教程
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
微信小程序和php的登录实现
Apr 01 #PHP
PHP新手指南
PHP命令行与定时任务
Apr 01 #PHP
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
Apr 01 #PHP
如何判断微信付款码和支付宝付款码
Apr 01 #PHP
You might like
可定制的PHP缩略图生成程式(需要GD库支持)
2007/03/06 PHP
php处理json时中文问题的解决方法
2011/04/12 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
解决option标签selected="selected"属性失效的问题
2017/11/06 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
js实现3D旋转相册
2020/08/02 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
The Body Shop美体小铺西班牙官网:天然化妆品
2019/06/21 全球购物
毕业生实习鉴定
2013/12/11 职场文书
酒店执行总经理岗位职责
2013/12/15 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
检讨书怎么写
2015/01/23 职场文书
公司保洁员管理制度
2015/08/04 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
Python中的 Set 与 dict
2022/03/13 Python