服务器安全:浏览器同源策略与跨域请求、XSS攻击原理及防御策略、如何防御CSRF攻击

article/2025/4/22 12:43:38

主要包括

  • 浏览器同源策略与跨域请求
  • XSS攻击原理及防御策略
  • 如何使用SpringSecurity防御CSRF攻击
  • CC/DDOS攻击与流量攻击
  • 什么是SSL TLS HTTPS?

一、浏览器的同源策略

请求方式:HTTP,HTTPS,Socket等

HTTP请求特点:无状态。
想要保持状态的话,需要服务器下发token/cookie到浏览器,在服务器端存的是session

服务端与客户端要建立会话:
在这里插入图片描述
浏览器的同源策略
同源策略:当访问同一域名下的所有子URI时,不需要重新登录。
所谓的同源是指:1.协议相同 2.域名相同 3.端口相同

什么是跨域请求?不同源的请求,就是跨域请求。
1.http://test/https://test/协议不同,不同源
2.http://test/http://www.test/二级域名不同,不同源
3.http://test:8080/http://test/端口号不同,不同源

浏览器允许跨域的请求
页面中的一些标签是不做同源限制的,比如<img> <script> <style>等标签,这些标签里的src地址可以与当前页不同源。
在这里插入图片描述
浏览器不允许跨域的请求
js里用js发起的post/load等请求,浏览器不允许跨域。

解决方法:
1、CORS
在浏览器指定服务来源(需要较新版本浏览器支持),服务器端设置好同源策略之后,就可以跨域请求了。

resp.setHeader("Access-Control-Allow-Origin", "*");
resp.setHeader("Access-Control-Allow-Headers", "*");
resp.setHeader("Access-Control-Allow-Methods", "*");

2、JSONp
底层原理:
js或者ajax在浏览器中已经被禁止掉了,但是可以通过
<script src="远程服务器/xx.js">引用一个js文件来实现

  • 准备一个真正的js文件
  • 通过动态的方式,映射地址

拿到远程js后,用callback函数写渲染逻辑
在这里插入图片描述
jsonp只能<script src='...'>,因此只能使用get请求

二、XSS攻击原理及防御措施

富文本编辑器的外链图片功能,如果不防御XSS攻击,可以填入一个www.fakepic?id=fake.jpg,每次访问这个富文本页面,因为文本中添加了别的网站资源连接地址,所以自动发送了请求。
XSS最简单理解是: 不可信的内容被浏览器渲染执行了
例如,百度开源的UEditor:
在这里插入图片描述
被填入的站点www.fakepic带来的好处:增加了流量,带来的坏处:流量过大会崩(同行竞争、敲诈勒索)
而富文本编辑器所在的网站不会被影响

XSS攻击的目的:流量攻击
防御方式:禁止外站引用、限流、资源对抗(加贷款)、大数据+AI(360在做这个服务,也是分析IP)

三、CSRF

CSRF跨站请求伪造:多标签浏览器,诱导进入假网站,假网站能拿到已登录页面的cookie,从而向真网站发送伪造的扣款请求
在这里插入图片描述

避免CSRF攻击的方式:

方式1
全站均使用post请求,不用get请求。(<img src="...">等可以跨域的浏览器标签只能发送get请求,而如果想发送post请求,需要用js实现,js不能发送跨域请求)

方式2
后台过滤Referer,也就是校验Referer头,禁止跨站请求,但是Referer也可能被伪造。

@Override  
public String intercept(ActionInvocation invocation) throws Exception {  String referer = ServletActionContext.getRequest().getHeader("Referer");  if((referer!=null) && (referer.trim().startsWith(Constants.HTTP + Constants.domainName))){  return invocation.invoke();  }  return "error";  
}  

方式3
在表单中增加一个随机的数字或字母验证码,通过强制用户和应用进行交互,来有效地遏制CSRF攻击。

方式4:使用token
参考:CSDN博客 - 跨域post及使用token防止csrf攻击
HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。

在站内页面上head中,增加token

<meta name="csrf-token" content="{{ csrf_token() }}">

配置angular提交表头

app.config(function ($httpProvider) {$httpProvider.defaults.headers.common['X-CSRF-Token'] = $('meta[name=csrf-token]').attr('content');
});

敏感的操作应该使用POST,而不是GET,以form表单的形式提交,可以避免token泄露。

在这里插入图片描述

在这里插入图片描述


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

相关文章

常见Web安全问题及防御策略

1、安全世界观 安全世界观一词是《白帽子讲Web安全》一书的开篇章节&#xff0c;多年后再读经典&#xff0c;仍然受益匪浅! 正如开篇所说的&#xff1a;“互联网本来是安全的&#xff0c;自从有了研究安全的人&#xff0c;互联网就不安全了。” 世上没有攻不破的系统&#xff0…

基于联邦学习中毒攻击的防御策略

文章目录 联邦学习简介FL&#xff08;federal learning)和模型中毒攻击的背景针对模型中毒攻击的防御策略局部模型更新的评估方法基于光谱异常检测的方法&#xff08; Spectral Anomaly Detection Based Method&#xff09;基于真理推理的评估方法基于熵的滤波方法基于余弦相似…

DDos攻击防御策略

DDOS攻击防御策略 DDOS(DDOS:Distributed Denial of Service) 分布式拒绝服务攻击. 在信息安全三要素里面—保密性,完整性,可用性,中DDOS(分布式拒绝服务攻击),针对的是目标机器的可用性,这种攻击方式是利用目标系统网络系统功能的的欠缺或者直接消耗其资源,是目标机器木法正常…

网络安全威胁与防御策略

第一章&#xff1a;引言 随着数字化时代的快速发展&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。然而&#xff0c;网络的广泛应用也引发了一系列严峻的网络安全威胁。恶意软件、网络攻击、数据泄露等问题层出不穷&#xff0c;给个人和企业带来了巨大的风险。本文…

安全文章研读:深度学习对抗攻击防御策略的一些实现

本文整理自哈尔滨工业大学硕士论文&#xff1a;深度学习对抗攻击防御策略的研究与实现 0x01 太长不看 深度学习在表现优异的同时&#xff0c;还存在易受攻击的缺陷。多数防御策略只能应对特定的攻击方法&#xff0c;普适性比较低&#xff0c;另外这些防御策略多为全局过滤扰动…

过拟合与欠拟合的生动理解

文章目录 1、过拟合2、欠拟合3、图像表现4、解决办法 1、过拟合 过拟合&#xff08;OverFititing&#xff09;&#xff1a;太过贴近于训练数据的特征了&#xff0c;在对应训练集上表现非常优秀&#xff0c;近乎完美的预测/区分了所有的数据&#xff0c;但是在新的测试集上却表…

模型的过拟合与欠拟合

样本数据集&#xff1a;样本数据集总是表现为数据的内在规律&#xff08;如&#xff1a;yf(x&#xff09;)与随机噪声共同作用的结果。 训练集&#xff1a;训练集是用于训练模型的样本数据集合。我们总是希望通过训练集&#xff0c;找到真实数据的内在规律&#xff0c;同时又希…

如何解决过拟合与欠拟合

如何解决过拟合与欠拟合 根据不同的坐标方式&#xff0c;欠拟合与过拟合图解不同。 1.横轴为训练样本数量&#xff0c;纵轴为误差 如上图所示&#xff0c;我们可以直观看出欠拟合和过拟合的区别&#xff1a; ​ 模型欠拟合&#xff1a;在训练集以及测试集上同时具有较高的误…

机器学习中的过拟合与欠拟合

目录 一、什么是过拟合与欠拟合二、原因及解决方法三、正则化类别四、拓展—原理 问题&#xff1a;训练数据训练的很好啊&#xff0c;误差也不大&#xff0c;为什么在测试集上面有 问题呢&#xff1f; 当算法在某个数据集当中出现这种情况&#xff0c;可能就出现了过拟合现象。…

机器学习之过拟合与欠拟合

1 机器学习中的误差 一般地&#xff0c;将学习器(机器学习模型)的实际预测输出与样本的真实输出之间的差异称为“误差”(error)。 统计学习的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。不同的学习方法会给出不同的模型。当损失函数给定时&…

机器学习过拟合与欠拟合!

↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习&#xff0c;不错过 Datawhale干货 作者&#xff1a;胡联粤、张桐&#xff0c;Datawhale面经小组 Q1 如何理解高方差与低偏差? 模型的预测误差可以分解为三个部分: 偏差(bias)&#xff0c; 方差(variance)…

机器学习:过拟合与欠拟合问题

本文首发于 AI柠檬博客&#xff0c;原文链接&#xff1a;机器学习&#xff1a;过拟合与欠拟合问题 | AI柠檬 过拟合&#xff08;overfitting&#xff09;与欠拟合&#xff08;underfitting&#xff09;是统计学中的一组现象。过拟合是在统计模型中&#xff0c;由于使用的参数过…

机器学习知识总结 —— 6. 什么是过拟合和欠拟合

文章目录 过拟合欠拟合泛化能力避免过拟合的一般方法从数据集上规避从训练模型上规避从训练过程上规避 作为从「统计学&#xff08;Statistics&#xff09;」跟「计算机科学&#xff08;Computer Science&#xff09;」交叉而诞生的新学科「机器学习&#xff08;Machine Learni…

VGG16网络结构要点

学习BCNN的过程时遇到&#xff0c;VGG16的网络结构如下图示意&#xff1a; 13个卷积层&#xff08;Convolutional Layer&#xff09;&#xff0c;分别用conv3-XXX表示3个全连接层&#xff08;Fully connected Layer&#xff09;,分别用FC-XXXX表示5个池化层&#xff08;Pool …

VGG-16网络结构解析

VGG&#xff0c;也叫做VGG-16网络。这个网络结构很有意思&#xff0c;相必实现这个网络的作者是有点强迫症&#xff0c;不然整个网络为什么能够如此的协调一致。基本上每一次的内容都大同小异&#xff0c;2层或3层卷积层&#xff0c;激活一下&#xff0c;池化一下&#xff0c;就…

VGGNet网络结构

深度神经网络一般由卷积部分和全连接部分构成。卷积部分一般包含卷积&#xff08;可以有多个不同尺寸的核级联组成&#xff09;、池化、Dropout等&#xff0c;其中Dropout层必须放在池化之后。全连接部分一般最多包含2到3个全连接&#xff0c;最后通过Softmax得到分类结果&…

VggNet网络结构详解

VggNet网络结构详解 #图像识别网络结构详解 一、概述 VGG在2014年由牛津大学著名研究组VGG (Visual Geometry Group) 提出&#xff0c;斩获该年ImageNet竞赛中 Localization Task (定位任务) 第一名 和 Classification Task (分类任务) 第二名。 二、网络详解 VGG16相比Al…

VGG11、VGG13、VGG16、VGG19网络结构图

VGG11、VGG13、VGG16、VGG19网络结构图 前言 前言 VGG网络采用重复堆叠的小卷积核替代大卷积核&#xff0c;在保证具有相同感受野的条件下&#xff0c;提升了网络的深度&#xff0c;从而提升网络特征提取的能力。 可以把VGG网络看成是数个vgg_block的堆叠&#xff0c;每个vgg_…

VGG网络结构详解与模型的搭建

首先贴出三个链接&#xff1a; 1. VGG网络结构详解视频 2. 使用pytorch搭建VGG并训练 3. 使用tensorflow搭建VGG并训练 VGG网络是在2014年由牛津大学著名研究组VGG (Visual Geometry Group) 提出&#xff0c;斩获该年ImageNet竞赛中 Localization Task (定位任务) 第一名 和…

【深度学习】VGG16网络结构复现 | pytorch |

文章目录 前言一、VGG16介绍二、VGG16网络复现——pytorch 前言 这篇文章按道理来说应该是很简单的&#xff0c;但是因为一个很小的bug&#xff0c;让我难受了一晚上&#xff0c;直到现在我也没找出原因。后面我会提到这个bug。 今天这篇文章主要用来手动搭建vgg16这个网路&am…