前言
最近作者在总结一些大厂考点,发现XSS和CSRF的是大厂常考问题,这篇文章让我们一起来分析一下这道网络安全类的高频考题吧
什么是XSS和CSRF
XSS:跨站脚本攻击(跨站注入攻击),利用网站对用户输入的过滤不足,向页面注入恶意脚本(例如javascript),当其他用户访问该页面时,脚本会被执行,从而窃取session、cookie等敏感信息,或者伪造用户操作。
CSRF:跨站请求伪造,借助用户已登录的身份,诱导用户在不知情的情况下,向目标网站发送伪造的请求(如转账,修改密码),利用用户的权限执行恶意操作
听不懂?没关系,举个实例助你理解
可能没学过网络安全,或者第一次接触的小伙伴对我刚刚讲的概念有点晕晕的,没关系,看完下面的例子你就可以理解了
XSS:
- 你在网站的“留言板”输入了
<script>alert('偷到你的信息了')</script>这段内容,然后点了“提交”。- 因为网站没过滤,这段内容被当成“正常留言”,直接保存到了网站的数据库里(服务器端存储数据的地方)。
- 其他用户打开这个留言板时,网站会从数据库里读取所有留言,包括你这条“恶意留言”,然后生成一个网页展示给他们。
- 其他用户的浏览器加载这个网页时,看到
简单说:你输入的恶意脚本,是先“上传”到了网站的服务器,再被网站“下发”给所有访问这个页面的用户。其他用户的电脑执行的,是从网站服务器上获取到的脚本,而不是直接从你电脑上“传过去”的。
这就像你在小区公告栏贴了一张带“陷阱”的告示,所有人路过看到都会触发,而不是只有你自己看到。
CSRF:
假设你刚在「张三银行」的官网登录过账号(还没退出,浏览器里保存着登录状态的cookie)。
- 这时你收到一条短信:“恭喜您中了100元红包,点击链接领取→http://坏蛋网站.com/redpacket”。
- 你好奇点了链接,打开的是一个恶意网页。这个网页里藏着一行代码,作用是:向「张三银行」的服务器发送一个请求——“给用户「黑客」转账5000元”。
- 因为你刚才登录过「张三银行」,浏览器在发送这个请求时,会自动带上你的登录凭证(cookie)。
- 「张三银行」的服务器收到请求后,看到有你的登录凭证,就误以为是你本人操作的,于是执行了转账。
整个过程的关键:
- 恶意请求是从你的浏览器发出去的(用了你的登录状态),但你完全没意识到。
- 黑客没法直接看到你的密码或cookie,他只是“借”了你的身份,让银行以为是你在操作。
就像你刚用身份证在酒店办完入住(没退房),有人伪造了一张“用你的身份证办理退房并把押金转给他”的单子,前台看到你没退的入住记录(类似登录状态),就信了这张单子,把钱转走了。
攻击目标不同
通过上面的讲解,你应该大概能够知道这两者指的是什么了,在面试中,你除了回答它们的基本概念之外,话可以从下面的两个方面去讲讲这它们,帮助你增加回答的时长,增加面试官对你好感
攻击目标不同
- XSS:主要目标是窃取用户的敏感数据(如登录凭证),或通过脚本控制用户在当前网站的行为。
- CSRF:主要目标是利用用户的身份权限,执行特定的操作(如发起交易、修改设置),而非直接窃取数据。
依赖条件不同
依赖条件不同
-
XSS:依赖网站对输入内容的安全校验缺陷,需要让恶意脚本被页面加载执行。
-
CSRF:依赖用户已登录目标网站(即拥有有效的会话凭证),且诱导用户触发伪造请求(如点击恶意链接、访问恶意页面)。
总结
总的来说,XSS,跨站注入攻击,是利用注入脚本偷数据,CSRF,跨站请求伪造,是冒用身份做操作,本文的第二部分也举了两个详细的例子对他们进行解释,每当忘记了这两个玩意的区别和特点,你可以想想这两个生动的例子,当然,为了应对面试,也可以增加一些文末给的两个方面的回答。希望你能够看完这篇文章在面试中不在惧怕这两个概念的相关提问!!!