IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 前端安全相关 -> 正文阅读

[网络协议]前端安全相关

前端安全

xss跨站脚本攻击

原理

攻击者往web页面里面插入恶意可执行网页脚本代码,当用户访问网站时时,嵌在web里面的恶意脚本被执行,从而达到获取用户信息或者其他目的的行为

定义

通过存在安全漏洞的web网站注册用户的浏览器内运行非法的html标签或者是js代码进行的一种攻击

类型

存储型xss

特点
持久型xss攻击,恶意代码存储在服务端,来源于后端从数据库中读取出的数据
攻击流程
1.攻击者提交恶意代码到网站的服务器数据库中
2.用户访问网站,服务器将恶意代码取出,拼接到html中,返回给浏览器
3.浏览器解析执行,恶意代码执行
4.攻击者获取用户的信息发送到特定的网站,或者是冒充用户的行为,调用网站的接口,执行特定的操作
常发生的场景
带有用户保存数据的网站功能,如用户发帖,商品评论、用户私信
满足的条件

####### post提交表单,后端没有做转义,直接入库

####### 后端从数据库中读取数据,没有做转义,直接返回给前端

####### 前端拿到数据后,没有做转义,直接渲染成dom

预防措施
对于输入的内容进行过滤转义
对html充分的转义

反射型xss

特点
将恶意代码包装在url的参数中,服务端将恶意代码取出返回给浏览器,浏览器执行

####### 例如https://xxx.com/xxx?default=

非持久性xss,即时性,不经过服务端存储,通过get和post就可以拿到
需要诱骗用户点击,必须要通过用户链接点击才发起
盗取用户敏感反馈信息
攻击流程
1.攻击者将恶意代码包装在url的参数中
2.用户打开这个url,服务端将恶意代码取出,拼接成html返回给浏览器
3.浏览器解析执行,恶意代码也执行
4.攻击者获取用户的信息发送到特定的网站,或者是冒充用户的行为,调用网站的接口,执行特定的操作
常发生的场景
URL 传递参数的功能,如网站搜索、跳转
预防措施
Chrome 和 Safari 能够检测到 url 上的xss攻击,将网页拦截掉,但是其它浏览器不行,如Firefox
1.确保web网站的渲染的所有的内容或者数据都来自于服务端
2.尽量不要从url,dom.forms等dom的api中直接获取数据渲染
3.尽量不要使用eval(),document.write(),innerHtml,document.createElement()等可执行字符串方法
4.对字符串进行编码(encodeURIComponent)

DOM型xss

特点
恶意代码取出和执行都是在浏览器,是前端的一个漏洞
攻击流程
攻击者将恶意代码包装在url中
2.用户打开url
3.浏览器解析执行,前端js将恶意代码取出,执行
4.攻击者获取用户的信息发送到特定的网站,或者是冒充用户的行为,调用网站的接口,执行特定的操作
预防措施
1.是由于前端代码不规范导致的,避免使用innerHtml,outerHtml,使用textContent,setAttributes
2.对输入内容进行转义(DOM 中的内联事件监听器和链接跳转都能把字符串作为代码运行,需要对其内容进行检查)
3.尽量少使用内联事件,如onlick,在跳转时是,要检测其内容,屏蔽掉javascrpt:开头的

其他XSS 防范措施

Content Security Policy(csp)

作用
禁止加载外域代码
禁止外域提交
禁止内联代码执行,比较严格,目前就发现github再用
禁止未授权的代码执行
合理使用上报,及时发现,及时解决
设置
服务端使用http的content-security-policy来指定策略,只允许加载同域下的资源

####### content-security-policy:default-src ‘self’

前端meta标签设置csp

#######

服务端设置与前端设置时一样的效果,只是前端设置不能使用report

输入内容长度控制

输入内容限制

其他安全措施

http-only
后端可以设置?httpOnly (不过这不是 XSS攻击 的解决方案,只能降低受损范围)
禁止js读取某些敏感cookie,就算xss完成注入也无法读取cookie
验证码
防止脚本冒充用户提交等危险操作

csrf跨站请求伪造

原理

攻击者诱导用户打开第三方网站,在第三方网站向攻击的网站发送跨站请求,利用用户已经取得网站的注册凭证,绕过后台的验证,冒充用户向网站执行特定的操作

攻击流程

分支主题

预防措施

1.添加验证码(体验不好)

2.关键操作只接受post请求

3.使用token(主流)

- 服务端给用户生成一个token,加密后传递给用户
- 用户在提交请求时,需要携带这个token
- 服务端验证token是否正确

4.检测referer来源

csp同源策略

5.samesite cookie属性

Samesite=Strict严格模式,表示这个cookie不能作为第三方的cookie,有效防止所有的crsf攻击
samesite=lax,宽松模式,比严格模式宽松一点,特定网站跳转过来时可以使用cookie

点击劫持

定义

是指利用透明的按钮或连接做成陷阱,覆盖在 Web 页面之上。然后诱使用户在不知情的情况下,点击连接访问内容的一种攻击手段

方式

1.利用一个透明的iframe,覆盖在web网页上,诱导用户在网页上操作,实际上在不知情的情况下点击了iframe,触发执行恶意网页的命令

2.利用一张图片覆盖网页,遮挡网页原有的位置含义

防御措施

1.X-FRAME-OPTIONS

有三个值,http字段

1.DENY
表示不允许在frame展示,即使是相同域名的页面下嵌套也不可以
2.?SAMEORIGIN
表示该页面可以在相同的域名页面的frame中展示
3.ALLOW-FORM url
表示页面可以在指定的来源的frame中显示

2.js 判断顶层窗口跳转,可轻易破解,意义不大

方法
function locationTop(){
  if (top.location != self.location) {
     top.location = self.location; return false;
  }
  return true; 
 }
locationTop();
破解
// 破解:
// 顶层窗口中放入代码
var location = document.location;
//或者
var location = "";

SQL注入

直接攻击数据库,实现数据库级别的操作,盗用数据

文件上传漏洞

指用户通过利用windows命名规则,上传了可执行的脚本文件(通常是 php),并通过此脚本文件获得了执行服务器端命令的能力

os注入

针对操作系统的

os 命令注入攻击指通过 web 应用,执行非法的操作系统命令达到攻击的目的

网络层 DDos注入

网络层 DDos

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-06 15:35:32  更:2021-12-06 15:35:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:42:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码