【安全】CSRF与XSS

article/2025/11/4 21:17:36

CSRF和XSS概念

CSRF:跨站请求伪造( cross site request forgery):盗用用户在某网站的身份,以用户名义向某网站发起恶意请求。原理见下图:
在这里插入图片描述

上图中的恶意站点B,有时候可能其实是一个正常的网站。这时候通常会跟XSS一起打一套组合拳进行攻击。

XSS: 跨站脚本攻击(Cross Site Scripting):向某网站植入恶意代码,当用户访问该网站时,恶意代码就会被执行。

例如上图中,B站点其实是一个正常的论坛网站,而黑客把上图中请求4的javascript代码用script标签包起来写进帖子回复框里面并提交,然后用户在登录A后再访问B的页面看到这条回复时,都会向A发送这条请求,因为页面上已经被植入类似下面这段攻击代码:

<div>
xxx帖子回复列表:
<p>评论xxx</p>
<p>评论xxx<script>$.get("http://www.xx.xx/transfer?amount=all&to=张三", function(res) {} )</script></p>
<p>评论xxx</p>
<p>评论xxx</p>
</div>

以上就是B站点存在XSS漏洞,然后被黑客利用完成了一次恶意代码植入,即XSS攻击。

XSS分类
XSS分为:持久型攻击和非持久型攻击。
像上文举例的XSS攻击就属于持久型,因为恶意代码被写进回复框提交,恶意代码就会被存储到B站点的数据库中,往后每次打开有这条回复的页面都能进行攻击,也有叫法是存储型。
而非持久型XXS(有的叫反射型)攻击是指一次性的代码植入完成仅一次攻击。这种攻击通常通过用户点击某个链接完成。如上述的B站点有个页面http://web.b.com/home?userName=A,userName参数将用于页面展示,这时黑客就可以伪造一个B的链接给用户并诱使用户点击:http://web.b.com/home?userName= 就会被插入到页面中。
这种攻击是一次性的,用户关闭这个页面,页面上植入的代码就没了,要重新点击链接才能再次植入恶意代码到页面中。

防范手段

CSRF防守

1、用token代替session和cookie,token可以存在sessionStorage中;
2、后端设置cookie为HttpOnly
3、后端验证请求来源于自家网站的前端域名后才处理请求
4、尽量用post请求

XSS防守
1、读取url参数时要注意检查‘<’,‘>’,‘script’等关键字符串
2、对输入框,表单提交等输入内容要做转译或过滤
3、后端从前端接收到的内容也要进行关键字符检查


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

相关文章

jupyter ‘_xsrf‘ argument missing from post 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

详解XSS和CSRF

关于XSS xss是跨站脚本攻击&#xff0c;攻击者通过“注入”&#xff0c;在网页中插入恶意代码&#xff0c;从而被浏览器执行所造成的一种攻击方式。 举一些实例&#xff0c;它可以进行如下操作&#xff1a; 1.窃取用户的cookie信息。恶意代码可以通过执行 ”doccument.cooki…

XSRF CRFS(跨站请求伪造,单点登录攻击) 特点和原理

CSRF 特点和原理 CSRF&#xff1a;Cross Site Request Forgery&#xff0c;跨站请求伪造 概念&#xff1a;跨站请求伪造&#xff08;英语&#xff1a;Cross-site request forgery&#xff09;&#xff0c;也被称为 one-click attack 或者 session riding&#xff0c;通常缩写为…

Linux常用命令——tail命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) tail 在屏幕上显示指定文件的末尾若干行 补充说明 tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个&#xff0c;则在显示的每个文件前面加一个文件名…

Linux中tail命令的使用

tail 命令可用于查看文件的内容&#xff0c;有一个常用的参数 -f 常用于查阅正在改变的日志文件。 tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上&#xff0c;并且不断刷新&#xff0c;只要 filename 更新就可以看到最新的文件内容。 tail [参数] [文件] …

Linux tail 命令

tail 命令可用于查看文件的内容&#xff0c;有一个常用的参数 -f 常用于查阅正在改变的日志文件。 tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上&#xff0c;并且不断刷新&#xff0c;只要 filename 更新就可以看到最新的文件内容。 命令格式&#xff1a…

关于tail 命令

tail命令 用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个&#xff0c;则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”&#xff0c;则读取标准输入。 1.如果给定的文件不止一个&#xff0c;则在…

Linux命令-tail

1、tail 对应中文意思为“尾巴”“跟踪” 2、Linux系统中tail 命令用于将每个文件的最后10行打印到标准输出 3、tail -f filename 会把filename文件里的最尾部的内容显示在屏幕上 并且不断刷新 只要filename更新就可以看到最新的文件内容 常用于追踪文件内容 4、实例 tail …

tail命令,实时查看日志文件

一、前言 Linux 实时查看日志文件&#xff0c;最主要使用的就是tail命令。 linux tail命令用于显示文件尾部的内容&#xff0c;默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个&#xff0c;则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名…

Linux - tail命令详解

一、作用 查看应用项目日志信息 说明&#xff1a;一般在应用项目目录下有个logs的目录文件&#xff0c;会存放日志文件&#xff0c;有个xxx.log的文件&#xff0c;可以用tail -f 动态实时查看后端日志二、语法 tail [选项] 文件名选项说明-f实时读取-1000查看最近1000行日志 …

windows下使用tail命令

tail 命令为linux 下的常用查看日志命令&#xff0c;可惜在windows下没有&#xff0c;还好有好心人开发了一个可以在Windows下的运行的小工具&#xff0c;来给分享一下: 链接: https://pan.baidu.com/s/1-LiogYgYcAEbZUstdEZURg 密码: 1w6p 使用方法&#xff1a; 下载后解压…

linux命令tail-f,【玩转Linux命令】tail命令详解

Hi&#xff0c;明娜桑&#xff0c;哦哈哟~。 今天小编给大家带来的“玩转linux命令之tail篇”&#xff0c;tail命令是咱们工作中经常用到的命令&#xff0c;常用于动态文件的查看&#xff0c;接下来搜狗华安带你来一起了解tail命令。 tail命令简介 linux tail命令用途是按照要求…

Linux之tail命令

tail命令从指定点将文件写到标准输出,使用tail命令的-f选项可以方便的查看正在改变的日志。tail -f nohup.out会把nohup.out最尾部的内容显示在屏幕上,并且不断刷新,能一直看到最新的文件内容。 命令格式 tail [必要参数] [选择参数] [文件] 命令功能 使用tail命令可以查看文…

tail命令详解

1. tail命令简介 linux tail命令用途是按照要求将指定的文件的最后部分输出到标准设备&#xff0c;一般是终端&#xff0c;通俗来讲&#xff0c;就是把某个档案文件的最后几行显示到终端上&#xff0c;如果该档案有更新&#xff0c;tail会自动刷新&#xff0c;确保你看到最新的…

Linux命令之 --- tail命令

tail命令&#xff0c;主要是查看文件内容。结合一些参数&#xff0c;更方便于查看动态的文件内容&#xff0c;比如日志信息等。 【tail -f filename】显示文件的尾部最后10行的信息&#xff0c;并且循环刷新&#xff0c;只要文件有更新&#xff0c;就会将更新信息显示到屏幕上&…

tail命令的常见用法

tail 是Linux中最常用的一个命令了, 他可以显示一个或者多个文件, 同时可以与管道符结合, tail最常用的是监视和分析日志文件等, 还可以和grep搭配使用 tail命令语法 首先了解一下tail命令的语法&#xff0c;格式如下: tail [OPTION]... [FILE]... [OPTION]是选项 [FILE]是文件…

tail 命令详解

一、tail 命令介绍 tail 命令可以将文件指定位置到文件结束的内容写到标准输出。 如果你不知道tail命令怎样使用&#xff0c;可以在命令行执行命令tail --help就能看到tail命令介绍和详细的参数使用介绍&#xff0c;内容如下&#xff08;我帮大家翻译了一下&#xff09;。 […

git之公钥登录

首先说一下我自己的理解&#xff0c;为什么要公钥登录呢&#xff1f;这样可以省去每次填写用户名和密码的麻烦。他的原理是什么呢&#xff1f;我本地发送一个带有私钥签名的请求去远程服务器(远程服务有我的公钥)&#xff0c;而服务器能够通过我的公钥验证我的私钥&#xff0c;…

Git注册登录

一、执行登陆用户名和密码命令 git config --global user.email “youexample.com”git config --global user.name “Your Name” 二、生成 .ssh 配置文件&#xff08;创建本地公钥&#xff09; ssh-keygen -t rsa -C "your_emailyouremail.com" #### 三、获取公钥四…

Git--SSH登录

SSH登录 进入当前用户的家目录 $ cd ~ 删除.ssh目录 $ rm -rvf .ssh 运行命令生成.ssh密钥目录 $ ssh-keygen -t rsa -C atguigu2018ybuqaliyun.com [注意&#xff1a;这里-C这个参数为大写的C] 进入.ssh目录查看文件列表 $ cd .ssh $ ls -LF 查看id_rsa.pub文件内容 $ cat…