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 相关文章推荐
MySQL修改密码方法总结
Mar 25 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
Oct 16 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
Zend Framework入门应用实例详解
Dec 11 PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP实现文字写入图片功能
Feb 18 PHP
PHP时间类完整代码实例
Feb 26 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将csv文件导入到mysql数据库的方法
2014/12/24 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
javascript中关于执行环境的杂谈
2011/08/14 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
微信小程序使用npm支持踩坑
2018/11/07 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
简单谈谈python的反射机制
2016/06/28 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python面向对象类的继承实例详解
2018/06/27 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
经典c++面试题二
2015/08/14 面试题
国税会议欢迎词
2014/01/16 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
党员转正介绍人意见
2015/06/03 职场文书
会议营销主持词
2015/07/03 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
Python pandas求方差和标准差的方法实例
2021/08/04 Python
js 实现验证码输入框示例详解
2022/09/23 Javascript