浏览器安全问题

1. XSS攻击

概念

XSS 攻击指的是跨站脚本攻击,是一种代码注入攻击。攻击者通过在网站注入恶意脚本,使之在用户的浏览器上运行,从而盗取用户的信息如 cookie 等
XSS本质是因为网站没有对恶意代码进行过滤,与正常代码混合在一起了,浏览器没发区分那些脚步是否可信,从而导致恶意代码的执行。

攻击者可以通过这种攻击方式进行以下操作:

  1. 获取页面的数据,如DOM、cookie、localstorage;
  2. DOS攻击,发送合理请求,暂用服务器资源,从而使用户无法访问服务器;
  3. 破坏页面结构
  4. 流量劫持(将链接指向某个网站)
攻击类型

xss攻击可以分为存储型、反射型和DOM型

  1. 存储型指的是恶意脚本会存储在目标服务器上,当浏览器请求数据时,脚本从服务器传回并执行
  2. 反射型指的是攻击者诱导用户访问一个恶意代码URL后,服务器端接收数据处理,然后把恶意代码的数据发送到浏览器端,浏览器端解析这段带有XSS代码的数据后当脚本执行,最终完成xss攻击;
  3. DOM型指的通过修改页面的DOM节点行程xss;
存储型 XSS 的攻击步骤:
  1. 攻击者将恶意的代码提交到目标网站的数据中;
  2. 用户打开目标网站时,⽹站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器
  3. ⽹站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器
  4. 恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作。

这种攻击常⻅于带有⽤户保存数据的⽹站功能,如论坛发帖、商品评论、⽤户私信等

反射型 XSS 的攻击步骤:
  1. 攻击者构造出特殊的 URL,其中包含恶意代码;
  2. ⽤户打开带有恶意代码的 URL 时,⽹站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器;
  3. 用户浏览器接收到响应后解析执⾏,混在其中的恶意代码也被执⾏;
  4. 恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作;

反射型 XSS 跟存储型 XSS 的区别是:存储型 XSS 的恶意代码存在数据库⾥,反射型 XSS 的恶意代码存在 URL ⾥。
反射型 XSS 漏洞常⻅于通过 URL 传递参数的功能,如⽹站搜索、跳转等。 由于需要⽤户主动打开恶意的 URL 才能⽣效,攻击者往往会结合多种⼿段诱导⽤户点击。

DOM 型 XSS 的攻击步骤:
  1. 攻击者构造出特殊的 URL,其中包含恶意代码;
  2. ⽤户打开带有恶意代码的 URL;
  3. ⽤户浏览器接收到响应后解析执⾏,前端 JavaScript 取出 URL 中的恶意代码并执⾏;
  4. 恶意代码窃取⽤户数据并发送到攻击者的⽹站,或者冒充⽤户的⾏为,调⽤⽬标⽹站接⼝执⾏攻击者指定的操作;

DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执⾏恶意代码由浏览器端完成,属于前端JavaScript ⾃身的安全漏洞,⽽其他两种 XSS 都属于服务端的安全漏洞。

如何防御XSS攻击

  1. 输入验证和清理‌:确保对用户输入的数据进行合法性验证和转义处理。
  2. 实施内容安全策略(CSP)‌:限制加载的资源和脚本。
CSP概念
  1. CSP 指的是内容安全策略,它的本质是建立一个白名单,告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则,如何拦截由浏览器自己来实现。
  2. 通常有两种方式来开启 CSP,一种是设置 HTTP 首部中的 Content-Security-Policy,一种是设置 meta 标签的方式

对一些敏感信息进行保护,比如 cookie 使用 http-only,使得脚本无法获取。也可以使用验证码,避免脚本伪装成用户执行一些操作。

2. CSRF攻击

CSRF 攻击指的是跨站请求伪造攻击,攻击者诱导用户进入一个第三方网站,然后该网站向被攻击网站发送跨站请求。如果用户在被攻击网站中保存了登录状态,那么攻击者就可以利用这个登录状态,绕过后台的用户验证,冒充用户向服务器执行一些操作。

CSRF 攻击的本质是利用 cookie 会在同源请求中携带发送给服务器的特点,以此来实现用户的冒充。

攻击类型

  1. GET类型的CSRF攻击,比如在网站中一个img标签里构建一个请求,当用户打开这个网站的时候就会自动发起提交;
  2. POST类型的CSRF攻击,比如构建一个表单,然后隐藏它,当用户进入页面,自动提交这个表单;
  3. 链接类型的CSRF攻击,比如在a标签的href属性构造一个请求,然后诱导用户去点击

如何防御CSRF攻击

  1. 进行同源检测:服务器根据 http 请求头中 origin 或者 referer 信息来判断请求是否为允许访问的站点,从而对请求进行过滤。
  2. ‌使用CSRF令牌‌:在每个请求中包含一个唯一的令牌,服务器验证该令牌的有效性;
  3. 设置HTTP头部‌:如X-Frame-Options、X-Content-Type-Options等,增强浏览器的安全策略‌;

3. SQL注入

SQL注入是一种通过操纵数据库查询来获取未经授权的数据库访问的攻击方式。攻击者可以通过前端输入插入恶意代码,如果后端没有进行适当的验证和处理,可能会导致敏感数据被窃取或破坏

如何防御SQL注入

  1. 输入验证:确保前端输入字段经过正确验证和处理
  2. 后端验证:后端不要信任前端输入的数据,进行二次验证
  3. 使用安全检测工具;如Burp Scanener、sqlmap等工具来检测潜在的SQL注入漏洞

4.中间人攻击

中间人攻击是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但实际上整个会话都被攻击者完全控制,在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容

攻击过程

  1. 客户端发送请求到服务端,请求被中间人拦截;
  2. 服务端向客户端发送公钥;
  3. 中间人截获公钥,保留在自己手上,然后自己生成一个伪造的公钥,发送给客户端;
  4. 客户端接收到伪造的公钥后,生成加密hash值发给服务器;
  5. 中间人获得加密hash值,用自己的私钥解密获得真密钥,同时生成假的hash值,发送服务器;
  6. 服务器用私钥解密获得假密钥,然后加密数据传输给客户端;

如何防御中间人攻击

  1. 加密通信:使用加密技术可以有效地防止中间人攻击。在传输数据时使用加密算法,确保数据在传输过程中不被窃听或篡改;
  2. 身份验证:在进行任何通信之前,要求用户进行身份验证,列如使用电子邮件地址或密码进行验证。这可以增加攻击者的难度,因为攻击者需要设法绕过身份验证过程;
  3. 限制访问:限制对敏感数据的访问,可以防止未经授权人的访问数据。列如,在服务器上设置访问的控制列表,只允许授权用户可以访问敏感数据;
  4. 监控系统:安装监控系统并定期监视网络流量,可以发现中间人攻击并采取适当的措施。这可以帮助及时采取行动,防止攻击者篡改通信内容;

5. 网络劫持

网络劫持分为两种

DNS劫持

输入京东被强制跳转淘宝这属于dns劫持

  1. DNS强制解析:通过修改运营商的本地DNS记录,来引导用户流量缓存到服务器
  2. 302的跳转方式:通过监控网络出口的流量,分析判断那些内容是可以进行劫持的,在对劫持内容发起302跳转的回复,引导用户获取内容

HTTP劫持

访问谷歌但是一直有其它的游戏广告弹出,由于http明文传输,运营商会修改你的http响应内容(即加广告)

DNS劫持由于涉嫌违法,已经被监管起来,现在很少有DNS劫持,而http劫持依然非常盛行,最有效的办法就是全站HTTPS,将HTTP加密这使得运营商无法获取明文,就无法劫持你的响应内容;

6. 那些可能引起前端安全问题

  1. 跨站脚本攻击(xss):一种代码注入方式,为了与css区分所以被称作xss,早期常⻅于⽹络论坛, 起因是⽹站没有对⽤户的输⼊进⾏严格的限制, 使得攻击者可以将脚本上传到帖⼦让其他⼈浏览到有恶意脚本的⻚⾯, 其注⼊⽅式很简单包括但不限于JavaScript / CSS / Flash 等;
  2. iframe的滥用:iframe中的内容是由第三⽅来提供的,默认情况下他们不受控制,他们可以在iframe中运⾏JavaScirpt脚本、Flash插件、弹出对话框等等,这可能会破坏前端⽤户体验;
  3. 跨站点请求伪造(csrf):指攻击者通过设置好的陷阱,强制对已完成认证的⽤户进⾏⾮预期的个⼈信息或设定信息等某些状态更新,属于被动攻击;
  4. 恶意第三⽅库: ⽆论是后端服务器应⽤还是前端应⽤开发,绝⼤多数时候都是在借助开发框架和各种类库进⾏快速开发,⼀旦第三⽅库被植⼊恶意代码很容易引起安全问题;

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

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

相关文章

uniapp实现的个人中心页面(仿小红书)

采用 uniapp 实现的一款仿小红书个人中心页面模板,支持vue2、vue3, 同时适配H5、小程序等多端多应用。 简约美观大方 可到插件市场下载尝试: https://ext.dcloud.net.cn/plugin?id22516 示例

步进电机软件细分算法解析与实践指南

1. 步进电机细分技术概述 步进电机是一种将电脉冲信号转换为角位移的执行机构,其基本运动单位为步距角。传统步进电机的步距角通常为 1.8(对应 200 步 / 转),但在高精度定位场景下,这种分辨率已无法满足需求。细分技术…

tauri-plugin-shell插件将_blank的a标签用浏览器打开了,,,解决办法

不要使用这个插件,这个插件默认会将网页中a标签为_blank的使用默认浏览器打开,但是这种做法在我的程序里不是很友好,我需要自定义这种行为,当我点击我自己的链接的时候,使用默认浏览器打开,当点击别的链接的…

ESP8266 NodeMCU 与 Atmega16 微控制器连接以发送电子邮件

NodeMCU ESP8266 AVR 微控制器 ATmega16 的接口 Atmega16 是一款低成本的 8 位微控制器,比以前版本的微控制器具有更多的 GPIO。它具有所有常用的通信协议,如 UART、USART、SPI 和 I2C。由于其广泛的社区支持和简单性,它在机器人、汽车和自动化行业有广泛的应用。 Atmega1…

C++查看动态库导出哪些函数以及动态库导出形式

1、查看动态库导出哪些函数 1.1、在 Windows 和 Linux 上,可以使用不同的方法来查看动态库(.dll 或 .so)导出的函数 Windows:使用 dumpbin:Windows 提供了 dumpbin 工具(Visual Studio 自带)&…

【使用hexo模板创建个人博客网站】

使用hexo模板创建个人博客网站 环境准备node安装hexo安装ssh配置 使用hexo命令搭建个人博客网站hexo命令 部署到github创建仓库修改_config.yml文件 编写博客主题扩展 环境准备 node安装 进入node官网安装node.js 使用node -v检查是否安装成功 安装成功后应该出现如上界面 …

【Linux】http 协议

目录 一、http协议 (一)http 协议的概念 (二)URL的组成 (三)urlencode 和 urldecode 二、http 的协议格式 (一)http 请求方法 (二)http 响应状态码 &a…

什么是时序数据库?有哪些时序数据库?常见的运用场景有哪些?

时序数据库 什么是时序数据库? 时序数据库(Time Series Database, TSDB)是专门针对时间序列数据(按时间顺序记录的数据点)进行存储和管理的数据库。这类数据通常包含时间戳(Timestamp)和对应的…

【Linux】冯诺依曼体系与操作系统理解

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:Linux 目录 前言 一、冯诺依曼体系结构 二、操作系统 1. 操作系统的概念 2. 操作系统存在的意义 3. 操作系统的管理方式 4. 补充:理解系统调用…

Unity HDR颜色、基础颜色、强度强度、HDR面板Intensity之间的相互转换

目录 前言: 一、UnityHDR面板的规律 二、HDR与基础颜色转换,HDR强度获取,输入设置强度获取 1.基础色->HDR颜色 2.HDR颜色->基础色 3.获取HDR颜色在面板中的强度 4.获取HDR颜色在面板设置输入时的强度 前言: HDR&#…

c++进阶--map和set的使用

大家好,昨天我们学习了二叉搜索树,今天我们来学习一下map和set容器的使用。 目录 1. map和set的使⽤ 1.1 序列式容器和关联式容器 2. set系列的使⽤ 2.1 参考文档 2.2 set类的介绍 2.3 set的构造和迭代器 2.4 set的增删查 2.5 insert和迭代器…

Kylin麒麟操作系统服务部署 | NFS服务部署

以下所使用的环境为: 虚拟化软件:VMware Workstation 17 Pro 麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、 NFS服务概述 NFS(Network File System),即网络文件系统。是一种使用于…

FPGA之USB通信实战:基于FX2芯片的Slave FIFO回环测试详解

FPGA之Usb数据传输 Usb 通信 你也许会有疑问,明明有这么多通信方式和数据传输(SPI、I2C、UART、以太网)为什么偏偏使用USB呢? 原因有很多,如下: 1. 高速数据传输能力 高带宽:USB接口提供了较高的数据传…

生活反思公园散步与小雨遇记

《公园散步与小雨遇记》(一) 总收录于《生活小事灵感反思》与《生活小美好》 最近又新增一个习惯:每天至少走一小时 那天天气有雨,软件上显示在下雨,但是外面没雨,心想着大不了淋湿回来洗个头,…

夏门大学DeepSeek 手册:从社会大众到高校及企业的全面应用实践研究(附 PDF 下载)

这 3 份手册分别从 DeepSeek 大模型概念、技术与应用实践、DeepSeek 大模型赋能高校教学和科研、DeepSeek 大模型及其企业应用实践-企业人员的大模型宝典几个角度进行全面分析,可以结合着清华、北大系列相互对照着学习。 清华北大推出的 DeepSeek 教程(…

微服务保护:Sentinel

home | Sentinelhttps://sentinelguard.io/zh-cn/ 微服务保护的方案有很多,比如: 请求限流 线程隔离 服务熔断 服务故障最重要原因,就是并发太高!解决了这个问题,就能避免大部分故障。当然,接口的并发…

工作学习笔记:HarmonyOS 核心术语速查表(v14 实战版)

作为在 HarmonyOS 开发一线摸爬滚打的工程师,笔者在 v14 版本迭代中整理了这份带血的实战术语表。 一、架构基础术语速查 A 系列术语 术语官方定义笔者解读(v14 实战版)开发陷阱 & 解决方案abc 文件ArkCompiler 生成的字节码文件打包时…

驾校与无人机飞手培训机构合作开展低空业务技术详解

驾校与无人机飞手培训机构合作开展低空业务是一个创新的举措,旨在结合双方的资源和专业优势,为学员提供多元化的技能培训和业务拓展机会。以下是对这种合作模式下低空业务技术的详细解析: 一、合作背景与意义 1. 市场需求增长:随…

黄昏时间户外街拍人像Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 黄昏时分有着独特而迷人的光线,使此时拍摄的人像自带一种浪漫、朦胧的氛围 。通过 Lr 调色,可以进一步强化这种特质并根据不同的风格需求进行创作。Lr(Lightroom)作为专业的图像后期处理软件,提供了丰富的调色…

数据结构(队列)

数据结构(队列) 什么是队列? 队列和栈类似,也是一类特殊的线性表。特殊之处也是在于操作上。队列:只允许在一端进行插入数据操作(入队),在另一端进行删除数据操作(出队&…