常见网络安全防护

news2024/12/26 0:44:39

1 阻断服务攻击(DOS)

  • 阻断服务攻击,想办法目标网络资源用尽
  • 变种:分布式阻断服务攻击

影响:

  1. 宽带消耗性(消耗目标的带宽)
  2. 资源消耗型(消耗目标的计算资源)

解决方案:

  1. 防火墙
  2. 交换机(路由器)
  3. 流量清洗

1.2 跨站脚本攻击(xss)

  • 原理:将跨站脚本注入到被攻击的网页上,用户打开网页会执行跨站脚本。

解决方案: 1. 输入过滤(转义) 2. 输出过滤(转义)

1.3 SQL注入

‘;update user set money=99999 where id=10025’

select *from user where user_name=';update user set money=99999 where id=10025'

解决方案: 输入过滤(转义) 数据库安全策略

1.4 跨站请求伪造(csrf)

假如你刚登录银行网站不久,cookie还没过期,黑客利用小广告之类让你点击,然后请求在程序中请求转账接口

解决方案:

  1. 验证referer字段
  2. 在请求地址添加token并验证

1.5 HTTPS 中间人攻击

黑客在电脑上安装伪造的证书,拦截客户端的请求

2 同源策略

2.1 定义

  • 禁止一个源(origin)的脚本&文档和另一个源的脚本&文档交互
    • 两个URL的protocol,port和host相同,那么同源
    • 思考:如果两个源产生过多交换有什么问题?
    • 思考:

    • 为什么不禁用不同源的js?
    • 因为有时候需要把js放到cdn上,那么可能就不同源了,所以行不通。

    • 应不应该允许不同源的js修改dom?
    • 允许

    • 应不应该允许网站提交数据到不同源的的服务器?
    • 不允许

    • 应不应该允许网站提交cookie到不同源的服务器?
    • 不允许

      2.2 跨域的N种方法

      1.JSONP
    • 利用不限制跨越脚本执行的特点
    •  // 服务端数据(data.js)
       jsonp("example",{
          a:1,
          b:2
       })
      
       // index.html
       function jsonp () {
          console.log(topic,data)
       }
       // 加载跨域数据脚本
       var script = document.createElement('script')
       script.setAttribute('src','data.js')
       document.getElementdByTagName('head')[0].appendChild(script)
      

      思考

    • jsonp可以用来提交数据吗?
    • 可以在url上,但只能get请求;服务端可以通过判断返回不同的脚本

    • 尝试为fetch函数扩展jsonp功能
    • fetch(<jsonp-url>,{method: 'jsonp'})
            .then(data=>{
               console.log(data)
            })
      
      2. 跨域资源共用 重要
    • 跨域资源共用(Cross-Origin Resource Sharing)使用额外HTTP头允许指定的源和另一个源进行交互 服务端设置 Access-control-Allow-Origin:https://a.com
    • get、post我们称之为简单请求,简单请求在同源策略中会简单的处理,如果b.com返回了这个头Access-control-Allow-Origin:https://a.com,那么我们认为 这个请求是可以通过的。
    • 预检

      但是还有复杂一点的请求,我们需要先发OPTIONS请求,a.com想请求b.com它需要发一个自定义的Headers:X-ABC和content-type,这个时候就不是简单请求了, a.com要给b.com 发一个options请求,它其实在问b.com我用post行不行,还想在Headers中带X-ABC和content-type;并不是所有的headers都发这个OPTIONS请求,因为X-ABC是自定义的,所以需要发;b.com看到OPTIONS请求,先不会返回数据,先检查自己的策略,看看能不能支持这次请求,如果支持就返回200。

      OPTIONS请求返回以下报文

      HTTP/2.0 20 OK
      Access-Control-Allow-Origin:https://a.com
      Access-Control-Allow-Methods:POST,GET,OPTIONS
      Access-Control-Allow-Headers:X-ABC,Content-Type
           Access-Control-Max-Age:86400 // 告诉浏览器这个策略生效时间为一个小时,在一个小时之内发送类似的请求,不用在问服务端了,相当于缓存了
      

      浏览器收到了OPTIONS的返回,会在发一次,这一次才是真正的请求数据,这次headers会带上X-ABC、contentType。

      整体的过程cors将请求分为2种,简单请求和复杂请求,需不需要发送OPTIONS浏览器说的算,浏览器判断是简单请求还是复杂请求,cors是非常广泛的跨域手段 这里的缺点是OPTIONS请求也是一次请求,消耗带宽,真正的请求也会延迟。

      3.反向代理 重要
    • 因为跨越是浏览器的限制,所以可以用同源的服务器去代理请求,代理服务使链路变的更长。

      3 实战-CORS(fetch+node.js)

    • 观察node.js在服务端的实现CORS跨域
    • 观察浏览器器fetch的使用方法
    • 观察OPTIONS预检请求
    • 项目地址:/examples/computerNetwork/3.2

    • 用express起2个服务
    • const express = require('express');
      const app1 = express();
      
      app1.get('/',function(req,res){
          res.send('hello')
      })
      
      app1.listen(3000)
      
      const app2 = express()
      app2.get('/api',function(req,res){
          res.send('go')
      })
      
      app2.post('/api',function(req,res){
          res.send('go')
      })
      app2.listen(3001)
      

      启动node服务 nodeman cors.js

    • whislte做代理
    •     npm i whistle -g # 下载,mac电脑:sudo npm i whistle -g 
          whistle start # 启动
          http://localhost:8899/ # 浏览器查看
          SwitchOmega # 谷歌代理插件,可以配置127.0.0.1:8899的服务上
      

      配置whislte进行代理的域名

    • 谷歌代理插件SwitchOmega,配置代理服务器127.0.0.1:8899的服务

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flutter 输入框组件 高度问题

使用的组件名字为 TestField 组件 TestField 配置 占位文字 设置 decoration 属性 InputDecoration 中hintText去掉输入到 输入框的间距 InputDecoration 中contentPadding EdgeInsets.zero去掉边框中的间距 InputDecoration 中 使用 isDense:true设置输入框内文字的颜色 …

基于单片机设计的大气气压检测装置(STC89C52+BMP180实现)

一、前言 本项目设计一个大气气压检测装置&#xff0c;该装置以单片机为基础&#xff0c;采用STC89C52作为核心控制芯片&#xff0c;结合BMP180模块作为气压传感器。大气气压&#xff0c;也就是由气体重力在大气层中产生的压力&#xff0c;其变化与天气预报、气象观测以及高度…

双系统Ubuntu-22.04.3安装编译kaldi

Ubuntu物理内存要求85-100G以上&#xff0c;运行内存5-6G以上&#xff08;如果第一次安装的Ubuntu物理内存不够&#xff0c;请勿进行扩容&#xff0c;扩容易出现黑屏、蓝屏、死机的情况&#xff0c;应该卸载Ubuntu重新安装&#xff0c;在安装过程中进行内存分配&#xff1b;运行…

苹果手机内存满了怎么清理?这里有你想要的答案!

手机内存不足是一个比较普遍的现象。由于现在手机应用程序的功能越来越强大&#xff0c;所以占用的内存也越来越大。同时用户会在手机中存储大量的数据&#xff0c;如照片、视频、文档等&#xff0c;这些都会占用大量的手机空间。那么&#xff0c;苹果手机内存满了怎么清理&…

维视智造推出「镜片自动脱模视觉检测系统」,助力镜片脱模从高耗到高效

​ 一、行业热潮呼唤数字化转型 机器代人难题重重 随着人们生活水平的提高和消费观念的转变&#xff0c;眼镜的市场需求量也在逐年增加。青控镜、成人渐进镜、数码型眼镜......消费者在不同场景的细分需求催生出市场上种类繁多的镜片产品&#xff0c;面对行业热潮&#xff0c;提…

算法-二叉树-简单-二叉树的直径、将有序数组转换成二叉搜索树

记录一下算法题的学习9 二叉树的直径 题目&#xff1a;给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它们之间边数表示 读完题目&…

Java面向对象(高级)-- final关键字的使用

文章目录 一、 final的意义二、 final的使用&#xff08;1&#xff09; final修饰类&#xff08;2&#xff09; final修饰方法&#xff08;3&#xff09; final修饰变量1. 修饰成员变量1.1 举例11.2 举例2 2. 修饰局部变量2.1 举例12.2 举例2 &#xff08;4&#xff09;final搭…

信号功率放大器的工作原理和特点是什么

信号功率放大器是一种电子设备&#xff0c;用于将输入信号的功率进行放大&#xff0c;以达到所需的输出功率水平。它在各个领域中都有广泛的应用&#xff0c;包括音频放大器、射频放大器、激光功率放大器等。下面将详细介绍信号功率放大器的工作原理和特点。 工作原理&#xff…

基于 Modbus 的工业数据采集、控制(part 3)

Modbus 设备(利用 slave 模拟) Modbus 采集程序 client.c #include "client.h"modbus_t *ctx; key_t key_shm, key_msg; int shmid, msgid; struct shm *shm0; struct msgbuf msg0;void *collector(void *arg) {struct shm *p = (struct shm *)arg;while (1){sle…

ArgoWorkflow教程(一)---DevOps 另一选择?云原生 CICD: ArgoWorkflow 初体验

来自&#xff1a;探索云原生 https://www.lixueduan.com 原文&#xff1a;https://www.lixueduan.com/posts/devops/argo-workflow/01-deploy-argo-workflows/ 本文主要记录了如何在 k8s 上快速部署云原生的工作流引擎 ArgoWorkflow。 ArgoWorkflow 是什么 Argo Workflows 是…

深入理解路由协议:从概念到实践

路由技术是Internet得以持续运转的关键所在&#xff0c;路由是极其有趣而又复杂的课题&#xff0c;永远的话题。 SO&#xff1a;这是一个解析路由协议的基础文章。 目录 前言路由的概念路由协议的分类数据包在网络中的路由过程理解路由表的结构路由器关键功能解析 前言 在互联…

文件差分服务设计

需求 OTA&#xff08;Over-The-Air&#xff09;升级是一种至关重要的技术&#xff0c;用于更新嵌入式设备的固件或软件&#xff0c;以确保设备具备最新功能和修复漏洞。在OTA升级过程中&#xff0c;使用差异算法工具&#xff08;如bsdiff、hdiffpatch和xdelta3&#xff09;能够…

eNSP-直连通信实验

实验拓扑&#xff1a; 实验需求&#xff1a; 1. 按照图中的设备名称&#xff0c;配置各设备名称 2. 按照图中的IP地址规划&#xff0c;配置IP地址 3. 测试R1与R2是否能ping通 4. 测试R2与R3是否能ping通 5. 测试R1与R3是否能ping通 实验步骤&#xff1a; 1. 加入设备&…

2023亚太杯数学建模C题思路 - 我国新能源电动汽车的发展趋势

1 赛题 问题C 我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源( 非常规汽车燃料指汽油、柴油以外的燃料&#xff09;&#xff0c;将先进技术进行汽车动力控制和驱动相结 合的汽车。新能源汽车主要包括四种类型&#x…

应用带通滤波器进行划痕检测

案例要求&#xff1a; 图为HALCON中的例图“surface_scratch”&#xff0c;请提取出图中的划痕。 案例分析&#xff1a; 图中明亮程度不一&#xff0c;划痕颜色较淡&#xff0c;因此不能用灰度BLOB分析的方法提取出目标区域。因此&#xff0c;先构造一个带通滤波器&#xff0…

Linux编程 文件操作 creat open

文件描述符 文件描述符在形式上是一个非负整数。实际上&#xff0c;它是一个索引值&#xff0c;指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时&#xff0c;内核向进程返回一个文件描述符。 启动一个进程之后&#xff0c;…

3.OpenFeign的使用

OpenFeign 文章目录 OpenFeign一. 什么是OpenFeign二. OpenFeign基础使用1.添加依赖2.配置Nacos配置信息3.在项目中开启OpenFeign4.编写OpenFeign调用代码5.调用OpenFeign接口 三. OpenFeign内置的超时重试机制1.配置超时重试2.覆盖Retryer对象 四.自定义超时重试机制1.自定义超…

vue3-生命周期

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue3-生命周期 目录 vue3生命周期 vue3生命周期钩子 1.1 onMounted() 1.2 onUpdated() 1.3 onU…

Airtest结合Poco对控件实施精准截图,学起来!

1.前言 最近在Q群内发现有个小伙伴提出了一个很有趣的脚本需求&#xff0c;想要实现“通过选择器获取到了控件&#xff0c;然后截图这个控件范围”&#xff0c;根据我们的Airtest的局部截图接口以及poco控件的属性查询接口是可以很快实现的~ 2.接口查找 首先我们需要知道我们…

什么软件可以做报表?

报表在现代企业和组织中扮演着重要角色。它们是数据汇总、分析和展示的重要工具&#xff0c;为管理层和决策者提供洞察和指导。但是&#xff0c;报表的制作并非易事。使用Excel或手写代码开发报表可能会带来一系列痛点&#xff0c;而现代化的解决方案——比如VeryReport报表软件…