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中使用XML
Oct 09 PHP
PHP脚本的10个技巧(2)
Oct 09 PHP
PHP Ajax中文乱码问题解决方法
Feb 27 PHP
php 获取select下拉列表框的值
May 08 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
从刷票了解获得客户端IP的方法
Sep 21 PHP
简单PHP会话(session)说明介绍
Aug 21 PHP
PHP实现的曲线统计图表示例
Nov 10 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP模版引擎原理、定义与用法实例
Mar 29 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计数器的实现代码
2013/06/08 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
php自定义hash函数实例
2015/05/05 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
浅谈PHP中的
2016/04/23 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
python 布尔操作实现代码
2013/03/23 Python
一个超级简单的python web程序
2014/09/11 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
python自动裁剪图像代码分享
2017/11/25 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
Keras中的两种模型:Sequential和Model用法
2020/06/27 Python
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
党员批评与自我批评
2014/02/12 职场文书
《自选商场》教学反思
2014/02/14 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
MySQL注入基础练习
2021/05/30 MySQL