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 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
JS实现php的伪分页
May 25 PHP
网友原创的PHP模板类代码
Sep 07 PHP
php获取目标函数执行时间示例
Mar 04 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
PHP/HTML混写的四种方式总结
Feb 27 PHP
thinkphp 验证码 的使用小结
May 07 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 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下连接mssql2005的代码
2011/01/17 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
php实现图片添加描边字和马赛克的方法
2014/12/10 PHP
php导出生成word的方法
2015/12/25 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
jquery实现控制表格行高亮实例
2013/06/05 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
python实现dict版图遍历示例
2014/02/19 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
python MySQLdb使用教程详解
2018/03/20 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
Python pip配置国内源的方法
2020/02/14 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
实习生自荐信范文
2013/11/13 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
生日祝酒词大全
2015/08/10 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书