Web 安全:如何解决重放攻击和 XSS 注入?

2024年网络安全最新web安全及防护(XSS、CSRF、sql注入)(1) 几句简单的javascript,获取cookie中的用户名密码,利用jsonp把向1、盗取用户信息,如机器登录帐号、用户网银帐号、各类管理员帐号2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力3、盗窃企业重要的具有商业价值的资料4、非法转账5、强制发送电子邮件7、控制受害者机器向其它网站发起攻击。 阅读详情

在生产中有人可能会利用漏洞快速重复提交订单,导致用户在活动中享受多笔订单优惠。更严重的是,假如黑客利用漏洞执行一些恶意操作,如获取或者篡改系统数据或者权限,这可能导致用户数据泄漏,进而被告上法庭。

现在你意识到 Web 安全的重要性了吧。那我们该如何防范 Web 安全问题呢?这就是本讲我要给你重点介绍的内容了。希望学完后,你能轻松应对一些常见的 Web 安全问题。

Web 安全风险有哪些?

作为软件工程师,我们通常需要注意哪些 Web 安全风险呢?我的建议是,可以参考 OWASP Top 10 。

什么是 OWASP 呢?OWASP 是 Open Web Application Security Project 的缩写,它是一个组织,中文名称叫“开放式Web应用程序安全项目”。OWASP 每年都会发布排名前十的 Web 安全风险,也就是前面提到的 OWASP Top 10 。比如 2020 年 OWASP Top 10 如下:

  • 注入
  • 失效身份验证和会话管理
  • 敏感信息泄露
  • XML 外部实体注入攻击(XXE)
  • 存取控制中断
  • 安全性错误配置
  • 跨站脚本攻击(XSS)
  • 不安全的反序列化
  • 使用具有已知漏洞的组件
  • 日志记录和监控不足

图片

这 10 种风险在这里我就不一一介绍了,重点为你介绍下 Top 1 “注入”,因为它的风险最高。为什么这么说呢?

“注入”允许攻击者上传一段可解释执行的代码片段,而该代码片段可能帮助攻击者获取系统管理权限或者隐私信息。比如,黑客可能通过“SQL 注入”获取数据库表中所有的用户名和密码,或者通过“shell 脚本注入”等方式获取系统管理权限,进而危害整个系统的安全。

实际上,Top 4 XXE 和 Top 7 XSS 也是利用了“注入”来实现的。XXE 主要是将恶意代码注入 XML 文件中,利用服务器解析 XML 文件的漏洞来获取服务器上的额外数据。而 XSS 主要是利用浏览器渲染前端页面的漏洞,将恶意代码注入页面的数据中,窃取用户信息或执行恶意操作。

“注入”的攻击对象主要是两类:

  • 针对系统的注入,主要用于在系统中执行恶意代码,如利用“shell脚本注入”上传获取系统权限的脚本;
  • 针对用户的注入,主要用于获取用户身份信息并执行损害用户利益的操作,如利用 XSS 获取用户登录信息并发起转账请求。

除了以上因系统自身缺陷导致的风险外,攻击者还有一些利用网络缺陷发起的攻击手段,比如:中间人攻击、重放攻击、DDoS 攻击。

中间人攻击, 简单来说就是攻击者通过技术手段,侵入发送方和接收方之间的计算机(如网络代理服务),拦截网络请求窃取并篡改数据。我们通常可以利用加密等方式有效防止中间人攻击,如使用 HTTPS 代替 HTTP。

什么是重放攻击呢?所谓重放攻击,就是把以前发过的数据原封不动地重新发送给接收方。这个发过的数据,可能是攻击者窃听到的别人的数据,也有可能是攻击者曾经自己发过的数据。

重放攻击通常用来恶意消耗 Web 系统有限的资源,比如某电商平台的竞争对手或者恶意用户可能利用重放攻击来恶意占用爆款商品的库存,或者在秒杀活动的时候快速刷走活动商品。我们熟悉的“黄牛”,就是利用“秒杀器”之类的工具,快速提交重复的请求来刷走秒杀商品。

DDoS 攻击又是什么呢?DDoS的全称是 Distributed Denial of Service,即“分布式拒绝服务”,它的前身是 DoS (Denial of Service,拒绝服务)。DDoS 攻击通常是利用大量计算机同时向服务器发送大量垃圾数据,让服务器因为资源限制而无法处理正常的用户请求。

你发现没有,重放攻击和 DDoS 攻击有个相同点:都是利用大量请求快速占用系统资源。有时候,当重放攻击的请求量达到一定量级(如单节点达到 1000 次),就发生质的转变,可视为 DDoS 攻击。目前各大云产商基本都有预防 DDoS 攻击的能力。

对于秒杀系统来说,由于涉及钱和货,系统资源和用户信息都很重要,而重放攻击和 XSS 会危害到这两方面的安全。所以,接下来我将详细为你介绍下如何预防这两方面的安全风险 。

如何预防重放攻击?

前面我们了解到,重放攻击主要是将发送过的数据重新发送给接收方。试想下,如果我们能将这些关键的数据打上唯一标识,并在接收端记录下是否已经接收过,是不是就能预防重放攻击了呢?没错,就是这个思路!那具体是怎么做呢?

通常有三种方法预防范重放攻击:加随机数、加时间戳、加序列号。

加随机数,我们可以让后端生成一个随机数给前端,并将该随机数记录为未使用,同时设置有效期。在后续前后端交互中,后端会接收前端请求,并校验是否有该随机数,是否未使用,是否未过期。如果请求中没有该参数,或者该随机数已使用或者已过期,则拒绝请求。

这个方法的优点是不容易伪造,但它需要额外保存使用过的随机数,若记录的时间段较长,则保存和查询的开销较大。

加时间戳, 我们可以在前端生成一个时间戳,然后把它作为参数发给后端,后端校验该时间戳与当前时间是否相差在一个允许的范围内(比如 10 秒),如果超过了,则拒绝请求。

该方法优点是不用像加随机数那样额外保存其他信息,但前端和后端认证双方需要准确的时间同步,同步越好,受攻击的可能性就越小。所以,当系统变得庞大时,跨越的区域较广,要做到精确的时间同步就变得不容易了。

加序列号, 每次请求或返回的时候,我们都可以在上一次请求或返回的序号上加 1 ,并将当前序号记录下来。如果收到不连续的序号,则认为是非法数据。

该方法优点是不需要时间同步,保存的信息量比随机数方式小。缺点是一旦攻击者对报文解密成功,就可以获得流水号,从而每次将流水号递增欺骗认证端。

以上三种方法各有优缺点,那么秒杀系统该使用哪种方法呢?

我们都知道,一个正常用户在发起抢购商品的请求前,需要先进入秒杀活动页或者商品详情页,而这两个页面都会请求后端接口,以获取活动信息和商品信息。基于此,我们就可以利用这两个页面来做文章。

具体来说,就是在这两个页面调用后端接口的时候,由后端给前端下发一个短时间内可以作为唯一标识的东西,比如用随机数和时间戳拼接得到的数字。同时,后端将这个唯一标识记录下来,有效期设置为活动结束时间。

当用户在前端发出请求抢购商品的时候,后端从抢购接口处接收到请求,此时它先判断是否有该唯一标识,如果没有该标识或者该标识已经被用过,则拒绝请求。

由于唯一标识的生成算法是由后端控制,攻击者无法伪造,只能通过接口获取。所以,当攻击者通过接口获取唯一标识的时候,我们可以对攻击者进行常规限流,如限制每个 IP 每秒请求数。

需要注意的是,秒杀系统最好开启代理层的粘性会话(Sticky Session)功能,以便将同一个用户的请求转发到同一个服务节点。这样就可以利用服务节点的本地内存缓存,来快速校验唯一标识,以及针对 IP 限流。

以上就是防重放攻击的方法,你学会了吗?

如何防 XSS ?

前面提到了“注入”的风险,比如在提交表单的时候,攻击者可能在表单某个字段里填上一段可被系统执行的脚本代码。如果系统没有安全校验并执行了该代码的话,可能就会遭到攻击者入侵,导致用户数据泄漏。

举个例子,某系统查询账号信息的 SQL 可能是这样拼接而成的:

"SELECT * FROM accounts WHERE custID='" + ID + "'"

如果攻击者将参数 ID 填写为:

or '1'='1'

这将会导致所有账号信息被泄漏。

XSS 产生的本质原因和这个类似,也是通过前端传入非法脚本代码到后端。只不过与 SQL 注入不同的是,XSS 是在前端获取用户信息并发起非法请求,而 SQL 注入是在后端获取用户信息。

我们要怎么防范 XSS 风险呢?

首先,我们要对前端输入的数据进行校验,过滤掉非法关键字。比如,我们可以让前端对商品图片 URL 输入框的数据进行校验,过滤掉诸如“javascript:”这样的前端关键字。

其次,后端对前端输入的数据进行转码后,再存入数据库,如进行 URLEncode 和 Escape 。在拼接 SQL 语句的时候,不要用简单的字符串拼接,而是利用占位符和参数通过 SQL 语句生成函数的来生成,如下所示:

sql := mysql.Raw("SELECT * FROM accounts WHERE custID='?'", ID)

这样可以利用 SQL 语句生成函数来校验参数合法性。
最后,前端在页面渲染的时候,也需要注意对一些关键字段进行字符转义,比如对字符串中的单引号(')、双引号(")、尖括号(<>)进行转义,就能防止前端利用这些数据渲染页面的时候执行攻击者注入的 javascript 代码。

以上便是防范 XSS 的方法。你学会了吗?


最后

关于网络安全技术储备

网络安全是当今信息时代中非常重要的一环。无论是找工作还是感兴趣(黑客),都是未来职业选择中上上之选,为了保护自己的网络安全,学习网络安全知识是必不可少的。

如果你是准备学习网络安全(黑客)或者正在学习,下面这些你应该能用得上:

①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

一、网络安全(黑客)学习路线

网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、网络安全教程视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

三、网络安全CTF实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

img

四、网络安全面试题

最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。

在这里插入图片描述

网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。

机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!

这份完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

img

Web安全实战:重放攻击与XSS注入的防御体系构建 在Web应用开发中,网络安全是保障业务稳定和数据隐私的基石。其核心原理在于确保请求的合法性与数据的纯洁性,防止恶意篡改与执行。从技术价值看,构建纵深防御体系能有效降低数据泄露、服务中断等商业风险。常见的应用场景包括用户登录、支付交易、内容展示等关键交互环节。本文聚焦于重放攻击和XSS注入这两大高频安全威胁,通过分析其攻击本质,结合时间戳、Nonce、签名验证以及输出编码、内容安全策略等实战技术,提供一套从设计到落地的完整防御方案,帮助开发者系统性提升Web应用的安全性。 阅读详情

相关推荐

Web安全实战:重放攻击与XSS注入的防御原理与工程实践

在Web应用开发中,API安全与前端安全是构建可信系统的基石。理解HTTP请求的本质与浏览器渲染原理,是实施有效防护的前提。重放攻击防御的核心在于确保请求的“一次性”与“时效性”,通过时间戳、随机数(Nonce)与数字签名机制,结合挑战-应答等密码学原理,为每个请求赋予唯一身份标识,从而在协议层解决请求复用问题。XSS(跨站脚本)攻击的根源在于“数据被误执行为代码”,其防御遵循“永不信任,始终验证”的原则,需在输入验证、输出转义、内容安全策略(CSP)等多层建立纵深防御体系。这些安全机制的技术价值在于,它们

weixin_27722377的博客 288

千万流量秒杀系统-Web 安全:如何解决重放攻击和 XSS 注入?

Web 安全风险有哪些? 作为软件工程师,我们通常需要注意哪些 Web 安全风险呢?我的建议是,可以参考 OWASP Top 10 。 什么是 OWASP 呢?OWASP 是 Open Web Application Security Project 的缩写,它是一个组织,中文名称叫“开放式Web应用程序安全项目”。OWASP 每年都会发布排名前十的 Web 安全风险,也就是前面提到的 OWASP Top 10 。比如 2020 年 OWASP Top 10 如下: 注入 失效身份验证和会话管理 敏感信息

LLH 1547

时间同步中 TOD 与GPRMC和IRIG-B的区别

时间同步中 TOD 与GPRMC和IRIG-B的区别

ftdlk的博客 1729

Web 安全:如何解决重放攻击和 XSS 注入?从零基础到精通,收藏这篇就够了!

在生产中有人可能会利用漏洞快速重复提交订单,导致用户在活动中享受多笔订单优惠。更严重的是,假如黑客利用漏洞执行一些恶意操作,如获取或者篡改系统数据或者权限,这可能导致用户数据泄漏,进而被告上法庭。现在你意识到 Web 安全的重要性了吧。那我们该如何防范 Web 安全问题呢?这就是本讲我要给你重点介绍的内容了。希望学完后,你能轻松应对一些常见的 Web 安全问题。作为软件工程师,我们通常需要注意哪些 Web 安全风险呢?我的建议是,可以参考 OWASP Top 10。什么是 OWASP 呢?

Python_0011的博客 1434

新手也能懂的Simulink汽车二自由度建模:从公式推导到模型搭建全流程

本文为新手提供了在Simulink中搭建汽车二自由度模型的完整实战指南。文章从模型核心概念讲起,详细讲解了如何将车辆动力学方程转化为状态空间模型,并逐步指导在Simulink中实现从参数设置、模块搭建到仿真验证的全过程。通过阶跃转向测试和参数影响分析,帮助读者直观理解车辆转向特性,并提供了实用的模型扩展思路与常见问题排查技巧。

weixin_29047919的博客 216

地平线天工开物AI开发平台实战:从量化训练到模型部署的完整指南

本文提供了地平线天工开物(OpenExplorer)AI开发平台的实战指南,详细解析了从量化训练到模型部署的完整流程。文章重点对比了量化感知训练(QAT)与训练后量化(PTQ)两条核心路径的优劣与适用场景,并分享了图像分类模型PTQ部署的实战经验与常见问题调试技巧,旨在帮助开发者高效地将AI模型部署到地平线AI芯片上。

weixin_29046035的博客 457

打造千万级流量秒杀第十课 Web 安全:如何解决重放攻击和 XSS 注入?

上一讲,我给你介绍了 KV 存储。虽然用了 KV 存储后,服务整体性能和可用性都得到了提升,但是如果有人恶意捣乱,效果也会大打折扣。举个例子,如果秒杀系统有安全漏洞,导致有1/3 的是利用漏洞发起的恶意请求,那这部分就会带来存储开销,白白浪费了 1/3 的存储资源。从系统角度来看,这可能是小事,仅仅降低了一些可用性,但它给公司造成的经济损失却很大。比如,有人可能会利用漏洞快速重复提交订单,导致用户在活动中享受多笔订单优惠。...

fegus的博客 1038

Supermind量化实战:我如何给双均线策略加上“止损”和“仓位管理”,让回测收益更稳健

本文详细介绍了如何在Supermind平台上为双均线策略添加止损和仓位管理模块,以提升量化交易的稳健性。通过Python实现动态止损和智能仓位管理,策略的年化收益率从12.3%提升至15.8%,最大回撤从58.7%降至22.4%,Sharpe比率显著提高。这些实战技巧适用于量化交易爱好者,帮助他们在黑天鹅行情中保持收益稳定。

weixin_42567752的博客 363

Web 安全:如何解决重放攻击和 XSS 注入?(非常详细)从零基础到精通,收藏这篇就够了!

在生产中有人可能会利用漏洞快速重复提交订单,导致用户在活动中享受多笔订单优惠。更严重的是,假如黑客利用漏洞执行一些恶意操作,如获取或者篡改系统数据或者权限,这可能导致用户数据泄漏,进而被告上法庭。现在你意识到 Web 安全的重要性了吧。那我们该如何防范 Web 安全问题呢?这就是本讲我要给你重点介绍的内容了。希望学完后,你能轻松应对一些常见的 Web 安全问题。作为软件工程师,我们通常需要注意哪些 Web 安全风险呢?我的建议是,可以参考 OWASP Top 10。什么是 OWASP 呢?

Libra1313的博客 1168

jira的详细使用教程

​jira的详细使用教程,1,Jira- 是一款缺陷管理软件工具,用其进行缺陷的管理和跟踪。(是B/S架构的软件) 2,主要涉及的角色: 3,具体工作流 添加工作流 1.点击项目设置

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 3295

从零开始跑通3DGS教程:(三)坐标系与尺度编辑(CloudCompare)

本文所属《从零开始跑通3DGS教程》系列文章; sfm重建的点云已经丢掉了尺度信息,并且坐标系跟图像数据有关(SFM初始化选择的图像),所以如果想恢复物理真实尺度,以及在想要的视角下渲染,那么需要对尺度和坐标系进行编辑修正,下文介绍如何使用CloudCompare修改坐标系和尺度

诺有缸的高飞鸟的博客 2872

接口安全三重门:SpringBoot防护XSS/SQL/重放攻击

本文构建了SpringBoot应用的三重安全防护体系:1)XSS攻击防护通过过滤器实现输入净化,结合前端渲染转义形成双保险;2)SQL注入防护采用预编译语句和自定义拦截器,阻断恶意SQL执行;3)重放攻击防护基于时间戳+Token机制,配合幂等设计保障请求唯一性。此外还引入分布式限流作为应对洪水攻击的最后防线。渗透测试表明,该方案将安全评级从C级提升至A级,各防护层总性能损耗控制在7%以内,实现了金融级安全保障。文章提供了完整的代码实现和最佳实践清单,为开发者构建高安全性系统提供了可落地的解决方案。

nihao2q的博客 1445

在 SAP BTP ABAP 环境中构建多租户应用:从架构到实战

ABAP多租户应用架构解析 本文详细介绍了SAP BTP中ABAP环境的多租户应用架构,重点阐述了其核心组件及协作机制。在云原生SaaS模式下,多租户架构使多个客户能共享同一套ABAP平台,同时保持数据和配置隔离。架构包含三层:平台与子账户层、多租户应用与平台服务层(含Approuter、ABAP Solution service、XSUAA等核心组件)、ABAP系统与租户层。文章深入分析了各组件功能,包括Approuter的路由机制、ABAP Solution service的自动资源调度、XSUAA的安

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 216

Web安全实战指南:从原理到防御,全面对抗重放攻击与XSS注入

在数字化时代,Web安全不仅是技术问题,更是企业和用户信任的基石。无论是开发者、运维人员还是普通用户,了解基本的安全防护措施都至关重要。是指保护网站、Web应用和Web服务免受恶意攻击和数据泄露的一系列技术和措施。随着互联网的快速发展,Web应用成为黑客攻击的主要目标,常见的威胁包括数据窃取、身份伪造、服务瘫痪等。Web安全的核心目标是确保:机密性:防止敏感数据(如密码、支付信息)被窃取完整性:确保数据在传输和存储过程中不被篡改可用性:保障服务稳定运行,抵御拒绝服务(DoS)等攻击。

Gappsong874的博客 600

034、MLCA 多尺度局部上下文注意力的 YOLOv11 适配:轻量级金字塔式空间上下文聚合

本文介绍了一种将多尺度局部上下文注意力(MLCA)模块集成到YOLOv11模型中的方法,以解决小目标检测中空间信息丢失的问题。MLCA采用金字塔式局部上下文聚合策略,通过不重叠的网格划分实现轻量级空间注意力计算,相比全局注意力机制能更好地保留小目标特征。 作者详细记录了实现过程,包括模块定义、参数调优和训练技巧,特别指出避免使用BN而改用GroupNorm以提升训练稳定性。在VisDrone数据集上的实验表明,MLCA-YOLOv11在参数量和计算量基本不变的情况下,mAP提升2.5%,其中行人检测提升3.

sundong_81的博客 285

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【web应用安全】关于web应用安全的几个主要问题的思考

XSS攻击的本质是。

wendao76的专栏 1647

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

web安全及防护(XSS、CSRF、sql注入)

2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力3、盗窃企业重要的具有商业价值的资料4、非法转账5、强制发送电子邮件7、控制受害者机器向其它网站发起攻击。

2401_85191700的博客 854

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Web安全清单——XSS、CSRF、SQL注入、防重放与敏感数据保护的分层策略

随着前后端分离和API优先架构的普及,Web安全的攻击面发生了显著变化。传统以服务器为中心的防护模式需要扩展为全链路防护客户端安全 → 传输安全 → 服务端安全 → 数据存储安全每个环节都需要特定的防护策略,且环节间需要安全协同。例如,CSP(内容安全策略)需要在HTTP响应头中设置,但影响的是浏览器端的资源加载行为。Web安全是一个需要持续关注和投入的领域。有效的安全防护不是单一技术或工具的应用,而是多层次、多维度防护策略的有机组合。纵深防御的核心原则输入验证:所有用户输入都不可信,必须经过严格验证。

刘珏的博客 763
上一篇: 渗透测试、红蓝攻防、代码审计基础环境搭建
下一篇: 如何提高自己的网络安全web渗透技术能力
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值