前端安全之xss与xsrf

article/2025/11/8 16:27:22

提到前端安全,往往离不开xss(跨站脚本攻击)、xsrf(跨站伪造请求),在此记录一下关于前端安全的学习过程。

什么是xss?

跨站脚本攻击(Cross Site Scripting),为了不和css(层叠样式表)混淆,故记为xss。其原理是利用用户对某个指定网站的信任,被恶意用户进行了web攻击(通常这种攻击会利用js实现)。

简单攻击场景
某用户A逛网站时发现某可以分享文章的论坛,非常感兴趣,写下以下文章
用户A:你好,我是用户A<script>alert(3)</script>
然后用户A将此文章提交至论坛上,假设论坛没有做任何安全防护。
用户B看见了此文章,点进去时会出现以下情景,网站蹦出了一个alert事件。
这种就是用户B被脚本进行了攻击。

在这里插入图片描述

xss防御

由于xss往往会利用js脚本进行攻击,所以我们可以利用以下方式进行防御

1、输入过滤
对用户的输入进行过滤,包括text、post等等所有输入进行可靠性检测。
也可以制作一个白名单,一但输入中的字符不在白名单内,自动过滤掉。
2、转义
与正则的思想类似,对比如<>等等特殊字符进行转义处理。

什么是xsrf?

xsrf 的全称是“跨站请求伪造”,它利用的是服务器对客户端浏览器的信任,从而伪造用户向服务器发送请求,从而欺骗服务器达到一些目的。

简单情景

1、用户A登陆了某银行网站取钱,此时会保留cookie;
(大家有没有遇见过,如果在短时间内登陆某APP,关闭APP(不是退出账号密码),快速再次登陆此App,此时会不用再次登陆app)
2、用户B在知道A在某银行取钱后,利用各种信息诱导进入某另一网站***.****.com
3、此时网站***.****.com存在一张图片,图片指向一个取钱的http请求
<img src=http://www.mybank.com/Transfer.php?toBankId=11&money=1000>
4、此时如果用户A点击了该图片,他就会丢失1000元。因为该请求是从A用户的网站发出去的,而不巧的是用户A刚不久之前访问某银行网站,此时请求会携带有效cookie,并且服务器的session还有效。
5A的钱被偷了。

需要注意的一点是用户B无法窃取用户A的cookie,他只是利用用户A在不知情的情况下,发出了http请求,借助服务器对于用户浏览器的信任,实现了非法转账(攻击)。

xsrf防御

明白了以上xsrf的原理,那该如何防御呢?

1、token验证
由于恶意用户无法窃取cookie,只能利用用户cookie模拟未携带token的http请求,那只要在服务器端进行token验证就可以防御xsrf的攻击。比如我们可以将token存储在localStorage中。
2、验证码
需要用户自己来填写验证码从而识别是否是用户主动发起的该请求。
其优点:简单粗暴、低成本
缺点:用户体验不好,需要多次验证。
3、Referer 字段
利用 HTTP 头中的 Referer 判断请求来源是否合法,Referer记录了该 HTTP 请求的来源地址。

参考:
Web 安全之 XSS 和 CSRF:http://jartto.wang/2017/12/15/xss-and-csrf/
XSS和 CSRF攻击详解:https://www.jianshu.com/p/64a413ada155


http://chatgpt.dhexx.cn/article/ttn2oX73.shtml

相关文章

前端安全问题及防范

目录 XSS攻击反射型存储型DOM型总结 CSRF攻击点击劫持CDN带来的风险文件上传漏洞本地存储信息泄露 XSS攻击 XSS(Cross-Site Scripting,跨站脚本)&#xff0c;是比较常见的安全漏洞问题&#xff0c;其主要的攻击方式是通过表单或者页面url参数来注入一些可执行的代码&#xff0…

前端安全之csp

最近前端项目被白帽子使用appscan扫到安全漏洞,老大勒令我们抓紧修复,我们先来看两个级别比较低的漏洞 看到这儿对于我个渣渣前端来说是懵逼的,难道我设置一下http header 就ok了 简单来介绍下什么叫做csp内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型…

Web前端安全系列之:XSS攻防及Vue防御(万字长文)

关注公众号 笑果杂谈 前言 Web 安全的兴起 Web 攻击技术的发展也可以分为几个阶段。在 Web 1.0 时代&#xff0c;人们更多的是关注服务器端 动态脚本的安全问题&#xff0c;比如将一个可执行脚本&#xff08;俗称 webshell&#xff09;上传到服务器上&#xff0c;从而获得权…

前端安全:CSRF、XSS该怎么防御?

近几年随着业务的不断发展&#xff0c;前端随之面临很多安全挑战。我们在日常开发中也需要不断预防和修复安全漏洞。接下来&#xff0c;梳理一些场景的前端安全问题和对应的解决方案。 XSS攻击介绍 XSS是后端的责任&#xff0c;后端应该在用户提交数据的接口对隐私敏感的数据…

如何解决Web前端安全问题?

我国网络技术水平的提升&#xff0c;带动着WEB前端业务量的显著增长&#xff0c;人们对于网络服务的需求也日益复杂&#xff0c;与此同时&#xff0c;越来越多的黑客出现&#xff0c;其攻击水平也有了明显提升&#xff0c;WEB前端也成为了众多黑客进行网络攻击的主要目标。 因…

前端安全问题的解决方法

目录 前言&#xff1a; 1.常见的安全性问题 2.XSS攻击的解释和解决方法 2.1 XSS攻击是什么&#xff1a; 2.2 经常出现的原因&#xff1a;用户输入&#xff0c;如input框 2.3 防御方式&#xff1a; 3.CSRF&#xff08;跨站请求伪造&#xff09;的解释和解决方法 3.1 是什么…

前端常见的安全问题

一、XSS &#xff08;Cross-Site Scripting&#xff09;跨站脚本攻击 通常指通过“HTML注入”篡改了网页&#xff0c;插入了恶意的脚本&#xff0c;从而在用户浏览网页时&#xff0c;获取用户信息、控制用户浏览器等的一种攻击 分类&#xff1a;持久性&#xff08;存储型xss&…

前端常见安全性问题

文章目录 一、常见的安全性问题二、XXS攻击&#xff08;Cross Site Scripting&#xff09;&#xff08;跨站脚本攻击&#xff09;三、CSRF安全漏洞&#xff08;跨站请求伪造&#xff09;四、文件上传漏洞五、限制URL访问&#xff0c;越权访问六、不安全的加密存储七、SQL注入攻…

前端WEB安全

一、浏览器安全 首先了解前端web安全知识&#xff0c;比不可绕开的基础就是同源策略了&#xff0c;同源策略&#xff08;Same Origin Policy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;则浏览器的正常功…

前端安全问题以及解决方案汇总

随着大前端的快速发展&#xff0c;各种技术不断更新&#xff0c;前端的安全问题也值得我们重视。今天我们来聊一聊前端常见的7个安全方面问题&#xff1a; 1.iframe 2.opener 3.CSRF&#xff08;跨站请求伪造&#xff09; 4.XSS&#xff08;跨站脚本攻击&#xff09; 5.ClickJa…

浅谈前端安全

1 什么是前端安全&#xff1f; 所有发生在浏览器、单页面应用、Web页面当中的安全问题都算是算是“前端安全问题”。或者就是说所有需要前端开发人员去修复的问题都属于前端安全问题。 2 前端目前存在哪些安全问题 2.1 xss&#xff08;Cross Site Scripting&#xff09;跨站…

数据结构中头结点的作用

数据结构中&#xff0c;在单链表的开始结点之前附设一个类型相同的结点&#xff0c;称之为头结点。头结点的数据域可以不存储任何信息&#xff0c;头结点的指针域存储指向开始结点的指针&#xff08;即第一个元素结点的存储位置&#xff09;。 作用 1、防止单链表是空的而设的…

链表的首元结点、头结点、头指针的区别(图示)

1、首元结点&#xff1a;就是指链表中存储第一个数据元素a1的结点。 2、头结点&#xff1a;它是在首元结点之前附设的一个节点&#xff0c;其指针域指向首元结点。头结点的数据域可以不存储任何信息&#xff0c;也可以存储与数据元素类型的其他附加信息&#xff0c;例如&#…

单链表两种结构:头指针,头结点与首元结点辨析

要区分头指针&#xff0c;头结点&#xff0c;首元结点这几个概念分别指什么&#xff0c;需要结构图来帮助阐释。 我们先来看一种不太严谨的表现形式。 1->2->3->4->NULL 头结点这个名词很具有迷惑性。比如这张图中&#xff0c;刚接触的新手很容易以为1就是来自头…

【头指针,头结点、首元节点】

链表中第一个结点的存储位置叫做头指针&#xff0c;那么整个链表的存取就必须是从头指针开始进行了。之后的每一个结点&#xff0c;其实就是上一个的后继指针指向的位置。 这里有个地方要注意&#xff0c;就是对头指针概念的理解&#xff0c;这个很重要。“链表中第一个结点的存…

单链表:头指针 头结点 首元结点区别与联系

单链表组成&#xff1a;头指针头结点第一个结点第二个结点第三个结点.............第N个结点。 注意下图中&#xff1a;首元结点就是第一个结点。 头指针&#xff1a;作用&#xff1a;1.头指针的名字就是本链表的名字 2.头指针也是一个指针&#xff0c;存放头节点地址 头结…

链表:头结点

简介&#xff1a; 头结点的数据域可以不存储任何信息&#xff0c;头结点的指针域存储指向第一个结点的指针&#xff08;即第一个元素结点的存储位置&#xff09;。头结点的作用是使所有链表&#xff08;包括空表&#xff09;的头指针非空&#xff0c;并使对单链表的插入、删除操…

头指针和头结点

在了解头指针和头结点之前&#xff0c;先介绍数据域、指针域、结点和链表的定义&#xff1a; 数据域用来存储元素的数值数据 指针域存储直接后继节点的存储位置 结点是数据元素的存储映像。由数据域和指针域两部分组成 链表 n个结点由指针链组成一个链表。它是线性表的链式…

关于链表中头指针和头结点的理解

线性表使用顺序&#xff08;数组&#xff09;存储时有个弊端&#xff0c;那就是在插入和删除时需要大量的移动数据&#xff0c;这显示是非常消耗时间的&#xff0c;所以可以采用链式存储&#xff0c;即有一个指针域&#xff08;单链表&#xff09;&#xff0c;来记录下个结点的…

首元结点,头结点,头指针区别

https://www.cnblogs.com/letianpaiai/p/13227755.html 首元结点就是指链表中存储的第一个数据元素的结点&#xff0c;就是结点Li 头指针是指向链表中的第一个结点的指针&#xff0c;如果有头结点&#xff0c;那么头指针所指结点为头结点&#xff0c;否则为首元结点 头结点是…