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极大的增强功能和性能
Oct 09 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
Apr 17 PHP
php实现的RSS生成类实例
Apr 23 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
如何用Laravel包含你自己的帮助函数
May 27 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 APP微信提现接口代码
2018/09/30 PHP
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
微信小程序实现点击图片放大预览
2019/10/21 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
python代码制作configure文件示例
2014/07/28 Python
Python基础之文件读取的讲解
2019/02/16 Python
python语言基本语句用法总结
2019/06/11 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
delegate与普通函数的区别
2014/01/22 面试题
学雷锋宣传标语
2014/06/25 职场文书
单位婚育证明范本
2014/11/21 职场文书
学校施工安全责任书
2015/01/29 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python