常见网络安全防护

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.mfbz.cn/a/180046.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【OpenCV+OCR】计算机视觉:识别图像验证码中指定颜色文字

文章目录 1. 写在前面2. 读取验证码图像3. 生成颜色掩码4. 生成黑白结果图5. OCR文字识别6. 测试结果 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【…

易点易动设备管理系统提升设备能耗管理和设备状态监控效率

如今&#xff0c;能源效率和设备状态监控对于企业来说变得越发重要。传统的设备管理方式往往存在能耗浪费和难以实时监控设备状态的问题。为了解决这些问题&#xff0c;易点易动设备管理系统应运而生。本文将介绍易点易动设备管理系统的功能和优势&#xff0c;以及如何通过它提…

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(2-2:中断)

学习之路主要为FreeRTOS操作系统在STM32F103&#xff08;STM32F103C8T6&#xff09;上的运用&#xff0c;采用的是标准库编程的方式&#xff0c;使用的IDE为KEIL5。 注意&#xff01;&#xff01;&#xff01;本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习…

Python中使用pyzbar实现二维码生成和识别功能

目录 一、引言 二、pyzbar库介绍 三、安装pyzbar库 四、使用pyzbar生成二维码 五、使用pyzbar识别二维码 一、引言 随着二维码的普及和应用&#xff0c;二维码生成和识别功能在日常生活和工作中越来越重要。在Python中&#xff0c;我们可以使用pyzbar库来实现二维码生成和…

9.9 Windows驱动开发:内核远程线程实现DLL注入

在笔者上一篇文章《内核RIP劫持实现DLL注入》介绍了通过劫持RIP指针控制程序执行流实现插入DLL的目的&#xff0c;本章将继续探索全新的注入方式&#xff0c;通过NtCreateThreadEx这个内核函数实现注入DLL的目的&#xff0c;需要注意的是该函数在微软系统中未被导出使用时需要首…

TikTok与精神健康:社交媒体在压力时代的作用

在当今数字化和社交化的时代&#xff0c;社交媒体已成为人们生活中不可或缺的一部分。其中&#xff0c;TikTok作为一款备受欢迎的短视频应用&#xff0c;不仅改变了人们的娱乐方式&#xff0c;也对精神健康产生了深远的影响。 本文将深入探讨TikTok在压力时代对精神健康的作用…

【VScode】安装配置、插件及远程SSH连接

一、VSCode安装 二、配置安装插件 三、配置远程连接SSH 四、MinGW 一、VSCode安装 VS官网 Visual Studio Code - Code Editing. Redefined下载安装包&#xff1a; 二、配置安装插件 安装中文插件 配置字体为20 配置文件–>首选项->设置->Font Size为20 设置 VSC…

【2021集创赛】基于ARM-M3的双目立体视觉避障系统 SOC设计

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 团队介绍 参赛单位&#xff1a;上海电力大学 队伍名称&#xff1a;骇行队 总决赛奖项&#xff1a;二等奖 1.摘要 随着信息技术的发展&#xff0c;AGV&#xff08;Automated Guided Vehic…

oracle的debjob挂載查詢

背景 有一個需求需要定時去執行一個produce&#xff0c;可以使用oracle的dbjob定時執行&#xff0c;相比較之前的vbs更加絲滑 --傳遞produce 開始的時間 頻率 declarea number;beginDBMS_JOB.SUBMIT(a,xx_warehouse_daliy_record_p;,to_date(202311230800,yyyymmddhh24mi),…

第二证券:北证50指数一枝独秀 短剧游戏概念股持续活跃

周三&#xff0c;沪深两市三大指数颤动调整&#xff0c;北证50指数“鹤立鸡群”&#xff0c;大涨超8%。到收盘&#xff0c;上证综指报3043.61点&#xff0c;跌0.79%&#xff1b;深证成指报9855.66点&#xff0c;跌1.41%&#xff1b;创业板指报1950.01点&#xff0c;跌1.73%。沪…

促进材料基因工程基础理论、前沿技术和关键装备的发展和应用,第七届材料基因工程高层论坛将于12月重庆举办,龙讯旷腾出席会议

为了进一步促进材料基因工程基础理论、前沿技术和关键装备的发展和应用&#xff0c;加强国际交流&#xff0c;加速我国新材料的研发和应用&#xff0c;由中国材料研究学会、西部科学城重庆高新区管理委员会主办&#xff0c;重庆大学、北京科技大学、北京云智材料大数据研究院等…

计算机毕业设计项目选题推荐(免费领源码)Java+ssm+MYSQL酒店大数据资源管理系统的设计与实现02029

摘要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对酒店大数据资源管理系统等问题&#xff0c;对…

Modbus转Profinet网关:PLC与天信流量计通讯的经典案例

无论您是PLC或工业设备的制造商&#xff0c;还是工业自动化系统的维护人员&#xff0c;可能会遇到需要将不同协议的设备连接组合并通讯的情况&#xff0c;Modbus和Profinet是现代工业自动化中常见的两种通信协议&#xff0c;在工业控制领域中被广泛应用。 在这种情况绝大多数会…

界面组件DevExpress Reporting v23.1 - Web报表设计器功能升级

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表 界面组件DevExpress Reporting v23.1已经发布一段…

【正则插件】前端正则插件以及预览插件推荐

1&#xff09; 2&#xff09; any-rule Pegex Previewer 下载好插件之后 在代码层右键选择 选择你需要的正则表达式&#xff0c;随后可以使用第二个插件 正则表达式插入之后顶部会有 Test Regex.. 点击会出现以下内容 将他 ctrl a 删除&#xff0c;输入你对应的正则表达…

2023年中国油田工程建设市场规模现状及行业竞争分析[图]

油田工程建设是在确定油气田有开发生产的价值的基础上&#xff0c;进行系统的工程建设&#xff0c;油田工程建设包括井场建设、管道施工、土石方工程、道路建设及绿化等服务。 油田工程建设主要内容 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#xff09; 油田服务…

UniApp打包教程:使用HBuilder X和AppUploader完成原生App云打包和上架指南“

目录 uniapp进行打包 使用上架工具appuplode进行发包 1.登录appuploder软件 2.登陆开发者App Store后台 uniapp进行打包 在HBuilder X编辑器中打开需要打包的项目&#xff0c;然后点击上面菜单栏中 发行 > 原生App-云打包&#xff0c;对以下弹出的弹窗进行内容填写 填写完…

八股文面试day6

什么是代理&#xff1f;为什么要用动态代理&#xff1f; 代理模式大概意思是&#xff1a;为其他对象提供一个代理项或者是占位符&#xff0c;以控制对这个对象的访问 代理模式核心思想&#xff1a;创建一个代理对象&#xff0c;在客户端和目标对象之间的一个中介&#xff0c;…

Visual NLP:图像信息自动提取的未来

本文旨在以简单的方式解释 Visual NLP 的关键概念&#xff0c;让你了解 Visual NLP 的含义、它的用例是什么、如何使用它以及为什么它是构建自动提取管道的未来 。 NSDT在线工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在…

Mybatis-Plus3.0默认主键策略导致自动生成19位长度主键id的坑

码字不易&#xff0c;如果对您有用&#xff0c;求各位看官点赞关注~ 原创/朱季谦 目前的Mybatis-Plus版本是3.0&#xff0c;至于最新版本是否已经没有这个问题&#xff0c;后续再考虑研究。 某天检查一位离职同事写的代码&#xff0c;发现其对应表虽然设置了AUTO_INCREMENT自…
最新文章