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往windows中添加用户
Dec 06 PHP
一个图形显示IP的PHP程序代码
Oct 19 PHP
一周让你学会PHP 不错的学习资料
Feb 06 PHP
PHP面向对象程序设计之接口用法
Aug 20 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 PHP
PHP面向对象程序设计方法实例详解
Dec 24 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
PHP5.6读写excel表格文件操作示例
Feb 26 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
PHP sdk文档处理常用代码示例解析
Dec 09 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
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
php checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
php类常量的使用详解
2013/06/08 PHP
php获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
PHP中文乱码解决方案
2015/03/05 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
php生成与读取excel文件
2016/10/14 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
Python中关于使用模块的基础知识
2015/05/24 Python
简单了解Python生成器是什么
2019/07/02 Python
Django配置文件代码说明
2019/12/04 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
商务会议邀请函
2014/01/09 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
Apache POI的基本使用详解
2021/11/07 Servers