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 输出双引号"与单引号'的方法
May 09 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
php创建sprite
Feb 11 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
php smarty truncate UTF8乱码问题解决办法
Jun 13 PHP
PHP不用递归遍历目录下所有文件的代码
Jul 04 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
php的4种常见运行方式
Mar 20 PHP
php二维码生成以及下载实现
Sep 28 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 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中unserialize返回false的解决方法
2014/09/22 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
实习生自我鉴定范文
2013/12/05 职场文书
玩具公司的创业计划书
2013/12/31 职场文书
秋季运动会广播稿大全
2014/02/17 职场文书
空乘英文求职信
2014/04/13 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
nginx配置虚拟主机的详细步骤
2021/07/21 Servers