前端整理 —— 前端安全

news2024/12/23 12:58:48

1. XSS(跨站脚本攻击)

  1. 什么是XSS
    是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如Cookie、SessionID等,进而危害数据安全
  2. 常见类型:
    1. 反射型XSS攻击:

      反射型 XSS 一般是攻击者通过特定手法(如电子邮件),诱使用户去访问一个包含恶意代码的 URL,当受害者点击这些专门设计的链接的时候,恶意代码会直接在受害者主机上的浏览器执行。反射型XSS通常出现在网站的搜索栏、用户登录口等地方,常用来窃取客户端 Cookies 或进行钓鱼欺骗

    2. 存储型XSS:

      存储型XSS是持久化的XSS攻击方式,通过用户输入个人信息或者发表文章的方式将恶意代码存储于服务器端,当其他用户再次访问页面时触发,造成XSS攻击,例如不检查输入直接拼接字符串作为数据库命令执行

    3. DOM-based 型 XSS 攻击:

      同样也是利用对数据源不可靠,缺乏过滤,由于开发过程中,可能部分数据需要回填到DOM中,例如href、src、data-id等标签属性,而通过构造特殊的字符串闭合原有的DOM标签,在其中注入script标签的方式造成攻击。例假设A是正常网站,B是攻击网站,a是正常网站用户,b是攻击者,假如A网站有评论功能,且会将用户的评论内容直接通过InnerHTML展示到页面上,那么b可以在评论区添加<a>,使点击者跳转到B网站,并且可以通过document.cookie来获取cookie,并作为参数一起发送给B,这样如果a点击了该链接,b就可以通过B网站获取到a的cookie

2. sql 注入

sql 注入即是指 web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 web 应用程序中事先定义好的查询语句的结尾上添加额外的 sql 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询或修改,从而进一步得到或篡改相应的数据信息

3. CSRF(跨站请求伪造)

是一种劫持受信任用户向服务器发送非预期请求的攻击方式。攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的登录凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的

举例:假设A是正常网站,B是攻击网站,a是正常网站用户,b是攻击者,假如A网站有一个注销功能的api,那么b可以在B网站添加一个访问这个api的链接,如果a访问了B网站,且点击了该链接,那么就会像这个api发送请求,并带上了a自己的cookie,虽然b并不能知道这个cookie是什么,但是b可以冒充是a来把a给注销了

4. ClickJacking(点击劫持)

点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的 ifiame,翻盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下,点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe的一些功能性按钮上

5. CDN劫持

(介绍篇幅可能有点长,因为我以前不太懂这个,如果不想看,可以滑到最下面)

  1. 什么是CDN

    百度百科:CDN,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输得更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度

    总结:CDN可以用来加速资源请求,其原理是分配就近的资源,对于已经加载过的资源直接从就近节点读取,进而加快网络请求速度

  2. 举个CDN的应用例子(别人的例子)

    (先介绍几个名词,下面用到了)

    1. 授权DNS:
    2. DNS调度系统:
    3. 返回域名中的CNAME:CNAME即别名记录,也被称为规范名字,一般用来把域名解析到别的域名上。当需要将域名a指向另一个域名b(该域名b就相当于域名a的别名),再由域名b提供IP地址,就需要添加CNAME记录
    4. 负载均衡:将相同的应用部署到多台机器上。解决访问统一入口问题,我们可以在集群前面增加负载均衡设备,实现流量分发。 负载均衡的意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行


    假设通过CDN加速的域名为www.a.com,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下:

    1. 当终端用户(北京)向www.a.com下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
    2. LDNS检查缓存中是否有www.a.com的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
    3. 当授权DNS解析www.a.com时,返回域名CNAME www.a.tbcdn.com对应IP地址。
    4. 域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
    5. LDNS获取DNS返回的解析IP地址。
    6. 用户获取解析IP地址。
    7. 用户向获取的IP地址发起对该资源的访问请求。
    8. 判断该IP地址对应的节点是否缓存该资源
      1. 如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如,图中步骤7和8,请求结束。
      2. 如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。

    总结一下:就比如你公司的服务器在上海,你不能让世界各地的人都去访问那个服务器,从很远的地方来访问可能响应速度非常慢,那么我们可以在世界各个地方放置多台服务器,里面都存放资源,这样如果有人想要获取服务器资源,直接访问离自己最近的就行了,如果没有再向源站请求资源,这样可以解决响应慢的问题。但是又有个问题来了,就比如用户要访问www.a.com,域名解析得到的IP就是一个,我怎么能得到离自己最近的服务器IP呢,这里就用到了授权DNS查询

  3. CDN应用场景
    CDN应用广泛,支持多种行业、多种场景内容加速,例如文件下载、视音频点播、直播流媒体、全站加速、安全加速

  4. CDN劫持
    (上两张好图,我看概念一直没理解,这个图一看就懂了)

6. DOS(拒绝服务攻击)

其目的是使计算机或网络无法提供正常的服务。DOS的攻击方式有很多种,比如:

  1. SYN FLOOD
    利用服务器的连接缓冲区(Backlog Queue),利用特殊的程序,设置TCP的Header,向服务器端不断地成倍发送只有SYN标志的TCP连接请求。当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。如果SYN请求超过了服务器能容纳的限度,缓冲区队列满,那么服务器就不再接收新的请求了。其他合法用户的连接都被拒绝掉。可以持续SYN请求发送,直到缓冲区中都是自己的只有SYN标记的请求
  2. IP欺骗
    DoS攻击这种攻击利用RST位来实现。假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。攻击时,伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务
  3. 带宽DOS攻击
    如果连接带宽足够大而服务器又不是很大,可以发送请求,来消耗服务器的缓冲区消耗服务器的带宽。这种攻击就是人多力量大了,配合上SYN一起实施DOS,威力巨大。不过是初级DOS攻击
  4. 自身消耗的DOS攻击
    这是一种老式的攻击手法。说老式,是因为老式的系统有这样的自身BUG。比如Win95 (winsock v1), Cisco IOS v.10.x, 和其他过时的系统。这种DOS攻击就是把请求客户端IP和端口弄成主机的IP端口相同,发送给主机。使得主机给自己发送TCP请求和连接。这种主机的漏洞会很快把资源消耗光。直接导致当机。这中伪装对一些身份认证系统还是威胁巨大的。上面这些实施DOS攻击的手段最主要的就是构造需要的TCP数据,充分利用TCP协议。这些攻击方法都是建立在TCP基础上的。还有其他的DOS攻击手段
  5. 塞满服务器的硬盘
    通常,如果服务器可以没有限制地执行写操作,那么都能成为塞满硬盘造成DOS攻击的途径,比如:发送垃圾邮件。一般公司的服务器可能把邮件服务器和WEB服务器都放在一起。破坏者可以发送大量的垃圾邮件,这些邮件可能都塞在一个邮件队列中或者就是坏邮件队列中,直到邮箱被撑破或者把硬盘塞满。让日志记录满。入侵者可以构造大量的错误信息发送出来,服务器记录这些错误,可能就造成日志文件非常庞大,甚至会塞满硬盘。同时会让管理员痛苦地面对大量的日志,甚至就不能发现入侵者真正的入侵途径

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

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

相关文章

【并发编程十四】c++原子操作(2)——实现自旋锁

【并发编程十四】c原子操作&#xff08;2&#xff09;——实现自旋锁一、自旋锁简介二、使用自旋锁三、不使用自旋锁四、分析简介 在介绍完原子操作&#xff0c;我们这篇使用c提供的原子操作&#xff0c;实现一个自旋锁&#xff0c;并加以利用。 原子操作参见【并发编程十三】…

什么是shell?shell在Linux内怎么编写脚本?

目录 一、概念 二、简单创建脚本 三、shell语法 1.变量 2.环境变量 3.参数变量 4.条件 5.控制结构 if语句 elif语句 for语句 一、概念 什么是shell? shell是一个作为用户与Linux系统间接口的程序&#xff0c;它允许用户向操作系统输入需要执行的命令。 下图显示了sh…

kali之setoolkit使用

kali之setoolkit使用 1 搭建钓鱼网站 钓鱼网站是黑客常用的用于盗取目标用户名与账号的方式&#xff0c;今天主要介绍setoolkit来制作钓鱼网站 setoolkit是kali下的社会工程学工具集。 ①进入setoolkit 命令行输入&#xff1a; setoolkit②选择社会工程学攻击 - 网络攻击 - …

基于Android的二手车交易系统

需求信息&#xff1a; 1、登录功能:用户可以注册登录&#xff0c;管理员可以给销售人员权限&#xff0c;所以销售人员只能登陆。 2、维护车辆信息:主要实现的是客户添加修改查询删除车辆信息&#xff0c;然后发布车辆需要提交&#xff0c;提交给管理员&#xff0c;管理员审核了…

四、Executor执行器【无标题】

Executor Executor 接口定义了数据库操作的基本方法&#xff0c;其中 query*() 方法、update() 方法、flushStatement() 方法是执行 SQL 语句的基础方法&#xff0c;commit() 方法、rollback() 方法以及 getTransaction() 方法与事务的提交/回滚相关&#xff0c;clearLocalCac…

Python快速入门

最近在很多地方都可以看到Python的身影&#xff0c;尤其在人工智能等科学领域&#xff0c;其丰富的科学计算等方面类库无比强大。很多身边的哥们也提到Python非常的简洁方便&#xff0c;比如用Django搭建一个见得网站只需要半天时间即可&#xff0c;因此也吸引了我不小的兴趣。…

二叉树:删除二叉搜索树中的节点

删除二叉搜索树中的结点 一、题目描述 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key 对应的节点&#xff0c;并保证二叉搜索树的性质不变。返回二叉搜索树&#xff08;有可能被更新&#xff09;的根节点的引用。 一般来说&#xff0c;删除…

2023牛客寒假算法基础集训营5(通过ABCDHIKL) I题有详解(F已补)

其他题待补中…… 链接&#xff1a;2023牛客寒假算法基础集训营5 简单题 A 小沙の好客&#xff08;贪心&#xff0c;前缀和&#xff0c;二分&#xff09; 题意思路 给定nnn个商品的价值&#xff0c;qqq次询问&#xff0c;每次询问k,xk, xk,x即价值不超过xxx的商品最多可以拿…

文件输入输出缓冲流IO综合练习——学生管理系统文件版

综合练习&#xff08;一&#xff09; 键盘录入3个学生信息(学号,姓名,年龄,居住城市)存入集合。然后遍历集合把每一个学生信息存入文本文件(每一个学生信息为一行&#xff0c;自己定义分割标记) 学生类&#xff1a; package com.itheima; /** 标准的学生类*/ public class St…

【数据结构 (3)】1.4 算法和算法分析

文章目录1. 算法的定义及特性算法的特性算法设计的要求2. 算法的时间复杂度分析算法时间复杂度的基本方法算法时间复杂度分析例题算法时间复杂度的计算3. 算法的空间复杂度1. 算法的定义及特性 算法的定义 对特定问题求解方法和步骤的一种描述&#xff0c;它是指令的有限序列…

WSL-Ubuntu 安装、移动

设置” 启用或者关闭Windows功能“&#xff0c;勾选如下选项。Hyper-v若存在灰色&#xff0c;可进入BIOS-Configuration&#xff0c;Intel Virtual Technology设置Enable重启2、安装Ubuntu3、移动。Ubuntu默认安装C盘。首先D盘创建移动的目录&#xff0c;例如&#xff1a;D:\Ub…

使用kubeadm搭建高可用k8s集群

使用kubeadm搭建高可用k8s集群方案选型高可用k8s集群部署准备工作服务器统一配置配置hostname打通ssh免密登录部署etcd集群step1 在master01上生成配置相关文件step2 每台服务器上启动etcd服务step3 检查etcd集群是否正常部署负载均衡 (haproxy keepalived)step1 下载haproxy与…

SAP 分析云 2023.012023.02 版新功能抢先看

大家新年好呀&#xff01;本年度的第一篇推文来啦~本文介绍了SAP 分析云2023.01&2023.02 版本的新功能。这些新功能已经在SAP 分析云FastTrack 客户的系统上线。对于 SAP 分析云季度发布周期 (QRC) 客户&#xff0c;此版本及其功能将作为 QRC 2023 年第1季度版本的一部分提…

[Android开发基础3] Activity的生命周期、创建与配置

文章目录 生命周期 概念 生命周期周期函数 创建Activity 方法一&#xff1a;编译器自动创建与配置 方法二&#xff1a;手动创建与配置 生命周期 概念 生命周期&#xff0c;顾名思义&#xff0c;就是当前的程序单元Activity从启动到销毁之间一系列所经过的状态。 生命周期周…

怎么画室内导航地图,室内地图绘制工具

现在很多楼宇建的越来越大&#xff0c;停车场、商场、展览馆、博物馆、交通枢纽等大型室内场景规模巨大、环境复杂&#xff0c;人们置身其中&#xff0c;一不小心就走错方向&#xff0c;从而多走很多弯路&#xff0c;费时费力。室内导航一直是导航场景的一大难题&#xff0c;如…

【redis6】第十四章(Redis集群)

问题 容量不够&#xff0c;redis如何进行扩容&#xff1f; 并发写操作&#xff0c;redis如何分摊&#xff1f; 另外&#xff0c;主从模式&#xff0c;薪火相传模式&#xff0c;主机宕机&#xff0c;导致ip地址发生变化&#xff0c;应用程序中配置需要修改对应的主机地址、端…

什么是Go语言?

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注&#xff01; 作者|慕课网精英讲师 Codey 1. Go 语言的出身 Go&#xff08;又称 golang&#xff09;是 Google 开发的一种静态强类型、编译型、并发型&#xff0c;并具…

OpenMMLab AI实战课笔记-第1节课

1. 第一节课&#xff08;课程链接&#xff09; 1.1 计算机视觉任务 计算机视觉主要实现以下目标&#xff1a; 分类目标检测分割&#xff1a;语义分割、实例分割 (对像素进行精确分类, 像素粒度或细粒度)关键点检测 1.2 OpenMMLab框架 框架选择&#xff1a;PyTorchOpenMML…

多级缓存案例说明

多级缓存案例说明1.安装MySQL1.1.准备目录1.2.运行命令1.3.修改配置1.4.重启2.导入SQL3.创建Demo工程3.1.分页查询商品3.2.新增商品3.3.修改商品3.4.修改库存3.5.删除商品3.6.根据id查询商品3.7.根据id查询库存3.8.启动4.创建商品查询页面4.1.运行nginx服务4.2.反向代理为了演示…

CSS网格教程:网格布局模块/网格容器/网格项目

目录 CSS 网格布局模块 网格布局 浏览器支持 网格元素 实例 Display 属性 实例 实例 网格列&#xff08;Grid Columns&#xff09; 网格行&#xff08;Grid Rows&#xff09; 网格间隙&#xff08;Grid Gaps&#xff09; 实例 实例 实例 实例 网格行&#xff0…