常见的前端安全以及常规安全策略

1、CSRF:跨站请求伪造(Cross-site request forgery);

原理:

(1) 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;

(2)在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;

(3)用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;

(4)网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;

(5)浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。 

侧重点:

不注入恶意脚本,侧重于伪造请求,借刀杀人,在用户不知情的情况下,借用户的名义干坏事。

防御:

(1)严格的跨域请求限制:验证 HTTP Referer 字段,判断页面来源(判断是不是来源于自己的网站)

(2)为cookie设置SameSite=Strict 表示禁止跨域请求;

(3)关键接口使用短信验证码等双重验证;

(4)在请求地址中添加 token 并验证;

(5)在 HTTP 头中自定义属性并验证

2、XSS:跨站脚本攻击(Cross-site scripting);

原理:向页面注入脚本(如:评论区)

侧重点:脚本,千方百计的注入并执行恶意脚本;

攻击危害:

注入方式:

一切用户可以输入的地方,都是XSS攻击的用武之地。所以对于前端来说,一切用户的输入都是不安全的。主要通过URL参数注入输入框注入

分类:

反射型和DOM型都要是通过参数的方式注入:

也就是说,黑客会引诱用户点击黑客精心准备的带有恶意代码的链接

 

 

防御:(对用户的输入和输出做严格的把控)

对输入进行过滤(输入格式校验、过滤特殊标签和事件属性、限制输入程度),尽量不要用v-html指令,对输出进行转义。

 3、点击劫持

原理:

黑客在自己的网站,使用隐藏的<iframe>嵌入其他网页,诱导用户按顺序点击

预防:

使用JS预防:

判断当前域名与子域名是否相同,不同则提醒不安全页面

增加请求头属性限制:只能加载同域名网页

4、前端的常规安全策略

① 定期请第三方机构做安全性测试和漏洞扫描

② code review 保证代码质量

③ 默认项目中设置对应的 Header 请求头,如 X-XSS-Protection、 X-Content-Type-Options 、X-Frame-Options Header、Content-Security-Policy 等等

④ 尽量不用v-html、在有输入框的地方要对输入做拦截和校验等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28350.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python VTK vtkImplicitBoolean 布尔切割

VTK中包含可以执行布尔操作的接口有vtkImplicitBoolean&#xff0c;vtkBooleanOperationPolyDataFilter&#xff0c;vtkLoopBooleanPolyDataFilter。 布尔操作包括&#xff1a;布尔加&#xff0c;布尔减和布尔交。 code: #!/usr/bin/env python""" This examp…

阿里云 OSS 静态网站托管

本文节选自我的博客&#xff1a;阿里云 OSS 静态网站托管 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是MilesChen&#xff0c;偏前端的全栈开发者。&#x1f4dd; CSDN主页&#xff1a;爱吃糖的猫&#x1f525;&#x1f4e3; 我的博客&#xff1a;爱吃糖的猫&…

基于虚拟同步发电机控制的双机并联MATLAB仿真模型

使用MATLAB2021b打开 主要内容&#xff1a; 功率计算模块、虚拟同步发电机控制模块、电压合成模块、电压电流双环控制模块&#xff01; 1.两台VSG并联&#xff0c;开始各自带负载10KW&#xff0c;在0.3秒的时候加入公共负载10KW&#xff0c;稳定后两台VSG可以均分公共负载的…

数据结构--时间复杂度与空间复杂度

数据结构–时间复杂度与空间复杂度 文章目录 数据结构--时间复杂度与空间复杂度时间复杂度一、什么是时间复杂度二、具体实例1.大O的渐进表示法2.二分查找的时间复杂度 空间复杂度一、什么是空间复杂度二、具体实例总结 时间复杂度 一、什么是时间复杂度 在计算机科学中&…

华为数通智选交换机S5735S-L24T4S-QA2无法SSH远程访问

以前都是按照华为S5700交换机开启SSH远程访问方法配置不同网段通过静态路由实现互通,华为S5700交换机开启ssh远程登陆,现在新买的华为数通智选交换机S5735S-L24T4S-QA2,也是按照这步骤配置,令人不解的是,竟然无法ssh访问,仔细看了配置也没有发现问题,在华为eNSP模拟器上验…

C++进阶—哈希/unordered系列关联式容器/底层结构(一篇文章学习哈希)

目录 0. 前言map/set和unordered_map/unordered_set 1. unordered系列关联式容器 1.1 unordered_map 1.1.2 unordered_map的接口说明 1. unordered_map的构造 2. unordered_map的容量 3. unordered_map的迭代器 4. unordered_map的元素访问 5. unordered_map的查询 6…

基于STM32的智能喂养系统

基于STM32的智能喂养系统 系统简介 自动检测环境温湿度&#xff0c;当温湿度低于阈值时自动打开加湿器&#xff1b;自动检测水位&#xff0c;当水位低于阈值时自动加水&#xff1b;自动检测有害气体&#xff0c;当检测到有害气体时自动打开风扇&#xff1b;同步状态到微信小程…

一文看懂《关于网络安全和信息化工作重要指示》

7月14日至15日&#xff0c;全国网络安全和信息化工作会议在京召开。《关于网络安全和信息化工作重要指示》也在会上得到解读与传达。 从近年来党的二十大等重大会议上网络安全和数据安全等相关话题多次被提及、我国陆续发布多部网络安全&数据安全相关政策法规等等&#xf…

机器学习1

核心梯度下降算法&#xff1a; import numpy as np from utils.features import prepare_for_trainingclass LinearRegression:def __init__(self,data,labels,polynomial_degree 0,sinusoid_degree 0,normalize_dataTrue):"""1.对数据进行预处理操作2.先得到…

【原创】实现ChatGPT中Transformer模型之输入处理

作者&#xff1a;黑夜路人 时间&#xff1a;2023年7月 Inputs Process&#xff08;输入处理层&#xff09;实现 我们看整个绿色框的整个位置&#xff0c;就是Inputs Process&#xff08;输入处理层&#xff09;。 在输入处理层&#xff0c;其实非常容易理解&#xff0c;主要就…

springboot与rabbitmq的整合【演示5种基本交换机】

前言&#xff1a; &#x1f44f;作者简介&#xff1a;我是笑霸final&#xff0c;一名热爱技术的在校学生。 &#x1f4dd;个人主页&#xff1a;个人主页1 || 笑霸final的主页2 &#x1f4d5;系列专栏&#xff1a;后端专栏 &#x1f4e7;如果文章知识点有错误的地方&#xff0c;…

C语言-ubuntu下的命令

目录 linux命令 【1】打开关闭终端 【2】终端 【3】ls命令 【4】cd 切换路径 【5】新建 【6】删除 【7】复制 【8】移动 【9】常用快捷键 【10】vi编辑器 【11】简单编程步骤 任务&#xff1a; linux命令 【1】打开关闭终端 打开终端&#xff1a; 1. 直接点击 …