【前端知识】浅谈XSS和CSRF网络攻击

news2025/1/11 21:49:46

【前端知识】浅谈XSS和CSRF网络攻击

    • 1. 常见的浏览器攻击
    • 2. XSS攻击
      • 2.1 定义
      • 2.2 类型
        • 2.2.1 Reflected XSS【反射型 - 非持久型 XSS】
        • 2.2.2 Stored XSS【存储型 - 持久型 XSS】
        • 2.2.3 DOM-based or local XSS【基于DOM或本地的XSS ,非持久性】
        • 2.2.4 其他类型XSS攻击
      • 2.3 如何防御
    • 3. CSRF攻击
      • 3.1 定义
      • 3.2 特点
      • 3.3 流程
      • 3.4 类型
      • 3.5 如何防御
    • 4. 总结
    • 相关文献

这里也分享一下自己之前写的笔记吧,因为自己这边记录网络安全这一部分的时候主要是用脑图记录的,所以在下面部分也会放一下自己记录的相关脑图。
如果笔记中有错误的,也欢迎大家指正啦🤗
在这里插入图片描述

1. 常见的浏览器攻击

在这里插入图片描述

浏览器攻击是指恶意主体利用浏览器漏洞对用户浏览器进行非法修改、窃取敏感信息或者进行其他有害行为的一种攻击方式。常见的浏览器攻击主要包括跨站脚本攻击(XSS)、跨站点请求伪造攻击(CSRF)、DNS劫持攻击等。下面我们主要介绍两种典型的攻击方式——XSS攻击和CSRF攻击。

2. XSS攻击

在这里插入图片描述

2.1 定义

  • 为什么叫XSS?
    首先,先解释一下跨站脚本(Cross-site scripting)为什么我们一般简称为XSS。因为如果简称为CSS会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,跨站脚本攻击我们通常都叫做XSS攻击。
  • 那什么是XSS攻击?
    XSS攻击是指攻击者通过利用网页开发时留下的漏洞,通过在网站上注入恶意指令代码,一般是指在HTML文件或者DOM中注入,使用户在浏览网页时不自觉的加载并执行攻击者恶意制造的网页程序,从而实现网页的篡改和用户隐私数据(比如Cookie、SessionID等)的窃取。
  • 恶意指令代码包括?
    通常就是指JS啦,但实际上还可以包括HTML、CSS、Java、Flash、PHP、VBScript、LiveScript等。

2.2 类型

目前,有关XSS的类型主要包括三种——反射型(非持久型)XSS、存储型(持久型)XSS和DOM型XSS;但随着攻击方式的更加多样化,XSS攻击的类型也还包括其他一些没有经常被介绍到的类型,比如基于JSONP的XSS、基于iframe的XSS、基于Flash的XSS、通用型XSS和突变型XSS等。下面我们先分别介绍一下三种常见的XSS攻击类型,再略微简单的介绍一下其他类型的XSS攻击。

2.2.1 Reflected XSS【反射型 - 非持久型 XSS】

最普遍的类型,不存储在服务端,而是存储在URL中,会经过服务端。

  • 定义(原理)
    反射型XSS,反射型跨站脚本漏洞,也被称为非持久型攻击。反射型XSS指攻击者诱导用户访问一个带有恶意代码的 URL 后,服务器端接收数据后处理,然后把带有恶意代码的数据发送到浏览器端,浏览器端解析这段带有 XSS 代码的数据后当做脚本执行,最终完成 XSS 攻击。

  • 为什么叫反射型
    因为Reflected XSS攻击方式的注入代码是从目标服务器通过错误信息,搜索结果等方式反射回来的,也就是说:发出请求时,XSS代码出现在URL中,作为输入提交到服务端,服务端解析后响应,XSS代码随着响应内容一起返回给浏览器,最后浏览器解析执行XSS代码。

  • 为什么叫非持久型
    因为Reflected XSS攻击方式只有一次性,也就是由于代码注入的是一个动态产生的页面而不是永久的页面。从前面的描述,我们也可以知道反射型XSS是存储在URL中的,因此只有在点击链接时才会产生作用。

  • 特点
    ① 即时性
    不经过服务器存储,直接通过 HTTP 的 GET 和 POST 请求就能完成一次攻击,拿到用户隐私数据。
    ② 需要主动点击
    攻击者需要诱骗点击带有恶意代码的URL链接。
    ③ 反馈率低
    由于XSS攻击并不需要存储在服务器上,再加上它本身的即时性,因此通常较难发现和响应修复。
    ④ 反射性
    存储于URL,经过服务端反射回浏览器。

  • 常见场景
    当用户的输入或者一些用户可控参数未经处理地输出到页面上,就容易产生XSS漏洞。常见于通过URL传递参数的功能,如恶意URL链接跳转、网站的搜索栏、用户登录口等地方,常用来窃取客户端 Cookies 或进行钓鱼欺骗。

  • 攻击流程
    在这里插入图片描述 1、攻击者构造带有恶意代码的URL,诱导用户点击
    2、用户由于诱导,主动点击恶意URL之后,服务端去除恶意代码,拼接在HTML中返回给浏览器端
    3、浏览器端收到响应后解析执行,其中恶意代码也随之被执行
    4、攻击者通过恶意代码来窃取到用户数据并发送到攻击者的网站。攻击者会获取到比如Cookie等信息,然后使用该信息来冒充合法用户的行为,调用目标网站接口执行攻击等操作。

  • 防御措施
    ① Web 页面渲染的所有内容或者渲染的数据都必须来自于服务端
    ② 尽量不要从 URL,document.referrer,document.forms 等这种 DOM API 中获取数据直接渲染
    ③ 尽量不要使用 eval, new Function(), document.write(), document.writeln(), window.setInterval(), window.setTimeout(), innerHTML, document.creteElement() 等可执行字符串的方法
    ④ 对涉及 DOM 渲染的方法传入的字符串参数做 escape 转义
    ⑤ 前端渲染的时候对任何的字段都需要做 escape 转义编码。

2.2.2 Stored XSS【存储型 - 持久型 XSS】

最直接的危害类型,最危险的一种跨站脚本,恶意代码永久地存储在服务端中,比如数据库,内存,文件系统等。

  • 定义(原理)
    存储型XSS,又称持久型XSS / HTML注入型XSS。存储型XSS指将恶意代码存储在目标服务器上,当浏览器端请求数据时,恶意代码会从服务端传回并执行。与反射型XSS最大的不同就是,攻击脚本将被永久地存放在目标服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。当目标用户访问该页面获取数据时,XSS代码会从服务器解析之后加载出来,返回到浏览器做正常的HTML和JS解析执行,XSS攻击就发生了。
  • 特点
    ① 持久性:永久地存储在服务端中,再次访问时无需再次提交XSS代码
    ② 存储型:存储在服务端中
    ③ 隐蔽度高:存储型XSS存储再服务端,而不像反射型一样存储在URL参数中或者POST数据中传递,所以用户访问页面时不会立刻发现问题,比反射性 XSS 和 DOM 型 XSS 都更有隐蔽性,因为它不需要用户手动触发。
    ④ 危害面广:反射型XSS通常出现在搜索等功能中,需要被攻击者点击对应的链接才能触发,且受到XSS Auditor(chrome内置的XSS保护)、NoScript等防御手段的影响较大,所以它的危害性较存储型要小。任何允许用户存储数据的 Web 程序都可能存在存储型 XSS 漏洞。若某个页面遭受存储型 XSS 攻击,所有访问该页面的用户都会被 XSS 攻击。
  • 常见场景
    存储型XSS最常发生在社区内区或邮件相关的网站,也就是一般存在于 Form 表单提交等交互功能。比如发帖留言,提交文本信息,博客评论,用户评论,留言板,聊天室,HTML 电子邮件,wikis等。黑客利用的 XSS 漏洞,将内容经正常功能提交进入数据库持久保存,当前端页面获得后端从数据库中读出的注入代码时,恰好将其渲染执行。
  • 攻击流程
    在这里插入图片描述 1、攻击者将恶意代码提交到目标网站数据库中
    2、用户打开目标网站后,网站服务器将恶意代码从数据库中取出,然后拼接到HTML中,返回到用户浏览器中
    3、用户浏览器解析HTML页面,其中的恶意代码也会执行
    4、恶意代码执行后,攻击者窃取用户的信息发到攻击者网站或者冒充用户做攻击者的目标行为
  • 防御措施
    ① 对所有用户的输入进行严格限制和过滤,不允许用户在输入中插入JavaScript等脚本代码
    ② 禁止用户上传与网站运营无关的文件,并限制可上传文件的大小和类型
    ③ 后端在入库前应该选择不相信任何前端数据,将所有的字段统一进行转义处理;后端在输出给前端数据统一进行转义处理
    ④ 前端在渲染页面 DOM 的时候应该选择不相信任何后端数据,任何字段都需要做转义处理。

2.2.3 DOM-based or local XSS【基于DOM或本地的XSS ,非持久性】

跨站脚本不经过服务器端,在数据传输过程中劫持网络数据包修改DOM,是由于客户端脚本处理逻辑导致的安全问题,属于前端自身安全漏洞。从效果上看,是一种特殊的反射型XSS

  • 定义(原理)
    DOM型XSS是基于DOM文档对象模型的,指的通过修改页面的 DOM 节点形成的XSS。DOM型XSS攻击指攻击者诱导用户打开恶意URL,直接在数据传输过程中劫持网络数据包修改DOM,浏览器端JS接收到响应后取出URL中的XSS脚本解析并执行,以此产生DOM型的XSS。DOM型XSS可能是存储型,也有可能是反射型,主要取决于攻击者的攻击手段。DOM型XSS漏洞主要是由于用户在网页脚本在修改本地页面DOM时未进行合理的处理,而使跨站脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。
  • 特点
    ① 不涉及服务器端,属于前端自身安全漏洞,:DOM型XSS攻击和反射型XSS攻击、存储型XSS攻击的主要区别是: DOM型XSS攻击属于前端自身的安全漏洞,其他两种属于是服务端安全漏洞。DOM型 XSS攻击不借助于Web服务器,而直接在客户端对DOM对象进行操作。XSS攻击者都是先利用各种方法提供攻击性的代码注入到HTML文档中,在用户浏览器中运行时即可将恶意代码执行来窃取敏感信息和覆盖网页内容。
    ② 攻击目标选定范围小:因为 DOM型XSS攻击并不涉及服务端安全性漏洞,而是针对实际在当前客户端浏览器环境下解析执行 HTML 文档,并修改 DOM 对象序列破坏用户控制界面元素的能力,这也使得其攻击目标被限制在了一个用户身边的设备当中,使其成为了一种更专注于追踪个人隐私、更具有效性的攻击方式。
    ③ 依赖动态执行语言:代码只有在客户端运行才会生效,一般使用JavaScript等动态执行脚本语言进行实现,常见的场景包括使用location.hash进行URL碎片中植入JavaScript脚本和有关获取Cookie、注册登录传递数据参数匹配方面的利用。
    ④ 隐蔽性强:攻击者往往可以通过加密、分割多次注入等手段隐藏恶意代码,提高攻击难度。同时也会增加侦测和防御的难度。
  • 常见场景
    主要发生在在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据。多数通过WiFi 路由器劫持的或本地恶意软件来劫持。需要特别注意以下的用户输入源 document.URL、 location.hash、 location.search、 document.referrer 等。
  • 攻击流程
    在这里插入图片描述1、攻击者构造出带有恶意代码的URL,并诱导用户点击。
    2、用户打开带有恶意代码的URL。
    3、用户浏览器收到响应后解析执行。前端使用 JavaScript 取出 URL 中的恶意代码并执行。
    4、恶意代码执行后,攻击者窃取用户的信息发到攻击者网站或者冒充用户做攻击者的目标行为。
  • 防御措施
    ① 输入验证,在前端对输入的数据进行验证和过滤,限制用户输入的特殊字符,如 <、 >、 (、 )等。
    ② 输出编码,在输出到页面前对数据进行编码,可以采用 HTML entities 编码或 JavaScript 编码,避免执行恶意脚本。
    ③ 使用 CSP。
    ④ 将 cookie 设置为 httpOnly。

在这里插入图片描述

2.2.4 其他类型XSS攻击

  • (1)基于iframe的XSS
    攻击者嵌入恶意页面到一个iframe框架里,并通过一些手段,如弹出窗口等诱导用户点击链接以触发XSS攻击。
  • (2)基于JSONP的XSS
    攻击者通过扮演JSONP提供者的角色(即返回JS代码且允许跨域请求的服务),来注入恶意脚本,因为JSONP具有可跨域请求的特性。
  • (3)基于 Flash 的跨站XSS
    属于反射型 XSS 的一种,利用了 Flash 应用程序中的漏洞来污染网页的内容。攻击者会在受害者访问的网页中插入恶意 Flash 文件,当 Flash 文件运行时,将恶意代码插入到网页中,从而实现攻击。

2.3 如何防御

  • XSS 的本质
    XSS 的本质是因为网站没有对恶意代码进行过滤,与正常的代码混合在一起了,浏览器没有办法分辨哪些脚本是可信的,从而导致了恶意代码的执行。
    所以,在XSS 攻击中有两大要素: 1. 攻击者提交恶意代码。 2. 浏览器执行恶意代码。
  • 哪些部分会引起XSS攻击?
    • 输入框:包括搜索框、评论框、留言板等。黑客可以在输入框中注入带有脚本代码的内容,一旦其他访问该页面的用户触发了脚本代码,就会造成安全问题。
    • URL参数:包括GET方式传递的URL参数,例如page.php?id=123。如果黑客将注入脚本代码的链接通过email、聊天室等方式发送给用户,当用户点击链接时,就会执行恶意脚本。
    • Cookie:Cookies是存储在用户计算机上的小文件,用于标识用户和记录与用户相关的信息。黑客可以通过设置cookie中的值含有脚本来实现XSS攻击。
    • HTTP头:HTTP响应头也可能被黑客所篡改,含有危险的脚本代码。
  • 如何防御
    在这里插入图片描述

3. CSRF攻击

在这里插入图片描述

3.1 定义

CSRF(Cross Site Request Forgery,跨站域请求伪造),也被称为 “One Click Attack” 或者 Session Riding,通常缩写为 CSRF 或者 XSRF,是一种对网站的恶意利用。通常情况下,CSRF 攻击是攻击者借助受害者的 Cookie 骗取服务器的信任,可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击服务器,从而在并未授权的情况下执行在权限保护之下的操作。

3.2 特点

  • 由第三方网站发起攻击
  • 利用被攻击这的登录凭证,冒充被攻击者,不会直接盗取数据
  • 攻击者仅仅是冒用被攻击者的登录凭证
  • 跨站请求可以通过form表单,cors,URL等,也可以直接嵌入第三方论坛,很难追踪

3.3 流程

在这里插入图片描述

  • 用户打开浏览器,访问安全网站A,输入用户名和密码请求登录网站A
  • 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录A成功,可以正常发送请求到网站A。
  • 用户没有退出A之前,在同一个浏览器中,打开一个Tab页面来访问网站B
  • 网站B接收到用户的请求后,返回一些攻击代码,并且发出一个请求要求访问第三方站点A
  • 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站并不知道该请求其实是由B发出的,所以会根据用户C的cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

3.4 类型

  • GET型CSRF:通过URL传递参数,向一个链接发出GET请求。例如,使用img标签或者JavaScript代码的Get请求都可能导致CSRF漏洞。
  • POST型CSRF:创建一个恶意网页,伪造表单提交POST请求。一般可通过表单隐藏域或者JavaScript自动提交表单形成。
  • 引诱用户点击链接

3.5 如何防御

在这里插入图片描述

4. 总结

总的来说,XSS和CSRF攻击都是利用客户端实现的漏洞,但主要区别在于其威胁侧重点不同,前者主要目的在于窃取用户信息或/和篡改网页内容,后者更多以获取用户权限进行非法操作。
1、CSRF是跨站请求伪造,XSS是跨域脚本攻击;CSRF是HTTP问题,XSS是代码注入问题
2、CSRF需要用户先登录网站A,获取cookie;XSS不需要登录。
3、CSRF是利用网站A本身的漏洞,去请求网站A的api; XSS是向网站A注入JS代码,然后执行JS里的代码,篡改网站A的内容。XSS利用的是站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的网站。CSRF攻击:攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求。

相关文献

  • 腾讯云-TZ一号:这一次,彻底理解XSS攻击
  • 简书-随心_Super:Web安全系列之XSS攻击
  • 想变厉害的大白菜【Web 安全】CSRF 攻击详解
  • CSDN-慢慢亦漫漫:XSS和CSRF两种攻击方式

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

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

相关文章

Python入门(十)用户输入

用户输入 1.概述2.函数input()的工作原理2.1 编写清晰的程序 3.使用int()来获取数值输入4.求模运算符 作者&#xff1a;xiou 1.概述 大多数程序旨在解决最终用户的问题&#xff0c;为此通常需要从用户那里获取一些信息。例如&#xff0c;假设有人要判断自己是否到了投票年龄。…

从C语言到C++_11(string类的常用函数)力扣58和415

目录 1. 学习string的铺垫 1.1 什么是string类 1.2 basic_string 模板类 1.3 编码表的由来 1.4 其它字符编码的string 2. string类对象的常见构造 3. sting类对象的容量操作 4. string类对象的访问及遍历操作 5. string类对象的修改操作 6. string类非成员函数 7. …

Unity之新版输入系统InputSystem如何自定义InputActions

一.前言 上一篇文章,我们介绍了如何使用新版本的InputSystem,我们知道了InputActionsAsset给我们提供了更多的灵活性,扩展性和复用性。那么这篇文章我们就来介绍一下如何创建自定义InputActionAsset 二.创建ActionAssets Input Action Asset 包含输入 Actions及其关联的B…

活动回顾|Kyligence x 亚马逊云科技,携手加速零售电商数智化转型

5月19日&#xff0c;Kyligence 与亚马逊云科技联合主办的「指标驱动&#xff0c;加速零售电商行业数智化转型」主题沙龙在上海成功举办。来自乐高、Kyligence、亚马逊云科技的专家分享了如何以数据和指标驱动&#xff0c;加速零售行业的数智化转型&#xff0c;并与现场观众进行…

【92】实测:访问不存在的function导致UR

前言 协议规定访问不存在的function会导致UR&#xff0c;今天我们就来实测一下。 这篇文章主要设计下面几个方面&#xff1a; 1、X86上的memory config 2、config方式访问不存在的设备导致UR 3、UR和advisory non fatal转换 4、header log解析 一、协议规定 协议规定如果…

SPI总线通讯协议学习

目录 什么是SPI 信号线 理解通讯原理 采样 SPI的推广 什么是SPI SPI是芯片与芯片之间的通讯,准确得说是串行同步通讯。既然都说了同步&#xff0c;那发送数据当然要和时钟线SCK配合才能发数据. 采用一主多从的模式&#xff0c;主机只有一个,而从机可以有若干个。 信号线 …

Java面试知识点(全)-Java并发-多线程JUC三- JUC集合/线程池

Java面试知识点(全) 导航&#xff1a; https://nanxiang.blog.csdn.net/article/details/130640392 注&#xff1a;随时更新 JUC集合类 为什么HashTable慢? 它的并发度是什么? 那么ConcurrentHashMap并发度是什么? Hashtable之所以效率低下主要是因为其实现使用了synchro…

学习开源项目消息推送平台需要什么基础?

有很多人问过我&#xff0c;学习开源项目消息推送平台austin需要有什么基础&#xff0c;我往往会回答&#xff1a;有SpringBoot基础就够了。 我在几年前总结过从零学习Java的路线&#xff0c;现在看来也没有很过时&#xff1a; Java基础&#xff1a;流程控制–>面向对象(包…

文件上传,解析漏洞编译器安全(23)

apache低版本解析漏洞 这个网站目录里有两个文件&#xff0c;一个是正常的php文件&#xff0c;另一个xx.php.xxx&#xff0c;源码是php源码&#xff0c;命名的文件&#xff0c;而访问中xxx的文件依旧可以执行出php代码的结果&#xff0c;而xxx就能当php文件解析&#xff0c;这…

【Linux】shell脚本编程

C/C与shell的区别 C/C是编译型 编译链接xx.c->xx 二进制机器指令 shell编程解释型 xx.sh 需要解释器&#xff08;如&#xff1a;bash&#xff09; Java 解释器编译 xx.java->xx.class 配置环境 输出一个hello my.sh #!/usr/bin/bash/echo"hello"ex…

php中Ajax的简单使用,登录表单调用Ajax判断是否正确登录利用layer.msg进行提示

php中Ajax的简单使用 jQuery中如何使用Ajax&#xff1f; jQuery 中封装了两个方法 get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。 两种在客户端和服务器端进行请求-响应的常用方法是&#xff1a;GET 和 POST。 GET - 从指定的资源请求数据POST - …

Postman集合/文件夹/请求中脚本的执行顺序

Postman的Collection(集合)/Folder(集合的子文件夹)/Request(请求)中都有Pre-request Script(请求前脚本)和Tests(请求后脚本) 这个功能类似于不同范围的Test Fixture功能, 我们来探索3个问题: 脚本的执行顺序?保存在集合/子文件夹中的请求单独发送时是否会执行 集合以及子文…

css自定义变量

文章目录 学习链接1.什么是CSS变量?2.如何定义CSS变量?定义CSS变量示例 3.如何使用CSS变量?使用示例 4.CSS变量可以干什么用?1. 提取相同的属性值风格切换简单案例index.htmlindex.css 2. 简化相似的代码案例实现1案例实现2index.html index.css 5.作用域问题案例index.htm…

【数据结构】--单链表力扣面试题③找链表的中间节点

目录 法一&#xff1a;遍历链表法 法二、快慢指针法 题述&#xff1a;给定一个头结点为head的非空单链表&#xff0c;返回链表的中间节点。如果有两个中间节点&#xff0c;则返回第二个中间节点。 示例1&#xff1a; 输入&#xff1a;【1,2,3,4,5】 输出&#xff1a;此链表…

〖Web全栈开发④〗— HTML基础详讲(超详细)

HTML基础详讲 &#xff08;一&#xff09;HTML基础1.1浏览器发展史1.2浏览器的诞生和发展 &#xff08;二&#xff09; 什么是网页2.1 网站是什么&#xff1f;2.2 什么是网站2.3 网站服务器2.4 总结 &#xff08;三&#xff09;HTML基础3.1 什么是HTML3.2 HTML标签3.3 实例3.4 …

为什么每个C程序都需要一个叫做 main 的函数?

文章目录 1、为什么每个C程序都需要一个叫做main的函数&#xff1f;2、为什么 C 的 main 函数可以通过调用 exit 或者执行一条 return 语句来结束&#xff0c;或者两者都不做&#xff0c;而程序依然可以正确终止&#xff1f; 1、为什么每个C程序都需要一个叫做main的函数&#…

论文阅读记录(1)

这一周读了2021cvpr的《Learning to Filter: Siamese Relation Network for Robust Tracking》。这篇文章的创新点&#xff1a; Relation Detector。关系检测器。关系检测器在本文中以元学习的方式执行&#xff0c;以获得从背景中过滤干扰物的能力。Refinement Module。x细化模…

canal学习-运行canal-adapter源码并记录解决报错问题(包含缺失的jar文件)(一)

运行canal-adapter 1. 下载canal源码1.1 下载源码并安装好环境1.2 查看目录结构 2.项目运行2.1 项目打包2.2 项目打包可能遇到的问题&#xff1a;1.Failure to find com.alibaba.otter:connector.tcp:jar:jar-with-dependencies:1.1.52.com.alibaba.druid.pool.DruidDataSource…

数字信号处理基础(三):FIR滤波器的设计

目录 1. 滤波器1.1 低通滤波器1.2 高通滤波器1.3 带通滤波器1.4 带阻滤波器 2. 完整代码3. 结果图 1. 滤波器 1.1 低通滤波器 低通滤波器需要知道低通截止频率&#xff0c;然后采用以下代码实现 % 低通滤波器设计 fp2*10000; % 低通滤波器截止频率&#x…

安全测试之使用Docker搭建SQL注入安全测试平台sqli-labs

1 搜索镜像 docker search sqli-labs 2 拉取镜像 docker pull acgpiano/sqli-labs 3 创建docker容器 docker run -d --name sqli-labs -p 10012:80 acgpiano/sqli-labs 4 访问测试平台网站 若直接使用虚拟机&#xff0c;则直接通过ip端口号访问若通过配置域名&#xff0…