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编程中八种常见的文件操作方式
Nov 19 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
基于PHP常用字符串的总结(待续)
Jun 07 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
PHP常用处理静态操作类
Apr 03 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
ucenter中词语过滤原理分析
Jul 13 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
PHP数据库处理封装类实例
Dec 24 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
safari下载文件自动加了html后缀问题
Nov 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
php组合排序简单实现方法
2016/10/15 PHP
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
jquery文档操作wrap()方法实例简述
2015/01/10 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
python如何删除文件中重复的字段
2019/07/16 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
大学生自我鉴定范文
2013/12/28 职场文书
卫生巾广告词
2014/03/18 职场文书
工作总结与自我评价
2014/09/18 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
2014年平安夜寄语
2014/12/08 职场文书
销售员岗位职责
2015/02/10 职场文书
大学生村官入党自传
2015/06/26 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS