OTP防重放攻击
OTP本意是一次性口令,比如邮箱验证码,短信验证码,或者根据totp或者hotp生成的默认30秒一变的6位数字。
不过开发者要注意,必须要在验证成功后失效那个验证码,不然就会导致重放攻击。
对于邮箱验证码,服务器可将邮箱和验证码存入json数组中或redis中,验证时查找匹配,成功则删除该项,一般还应配置失效时间。
对于手机验证码,服务器要将手机号和验证码存入json数组中或redis中,验证时查找匹配,成功则删除该项,一般还应配置失效时间。
对于动态口令,则要采用另外的方式:
先准备一个历史成功json数组,每项是一条json,包含用户id,token,验证时刻+禁止重复的时长
每验证成功一条用户和动态口令,则查数据是否有相同id,相同token并且验证时间还在禁止时间段内,如果查到,则认定为重放攻击,记录日志,验证不通过
如果没有查到,那么如果该用户历史列表为空,则添加json记录,否则更新替换记录的token和验证时刻+禁止重复时长。
注意一般动态口令验证会有一个允许的窗口数,以平衡用户时间和服务器时间的差异,这些前后窗口内的token值在当前验证仍然是可以通过的,所以禁止重复时长至少要覆盖之后的窗口时长。如果token时长是30秒,窗口是2,那么禁止重复时长应该设置为90秒。
如果用户数量大,嫌内存空间占用多,可以考虑每次计算时删除已经过期的条目,或者使用redis,在添加记录时定义失效时间。
...
var loginfaillist=[];
var userotpsucclist=[];
...if (tokenValidates) {let histmatch=userotpsucclist.find(item=>((item.userid==matchuser.uid.toLowerCase())&&(item.token==obj.token)&&(item.invalid>now)))if (histmatch!=undefined) {addfail(now,clientip);logger.error("涉嫌重放攻击 "+matchuser.uid);return res.json({ "msg":"涉嫌重放攻击"});}histmatch=userotpsucclist.find(item=>(item.userid==matchuser.uid.toLowerCase()))if (histmatch==undefined) userotpsucclist.push({"userid":matchuser.uid.toLowerCase(),"token":"obj.token","invalid":now+200000})else { histmatch.token=obj.token; histmatch.invalid=now+200000; }loginfaillist=loginfaillist.filter(itm=>(itm.ip!=req.ip));logger.info("认证通过 "+matchuser.username+" "+clientip);res.json({"msg":"succ","userid":matchuser.uid.toLowerCase(),"username":matchuser.username});}相关文章:
OTP防重放攻击
OTP本意是一次性口令,比如邮箱验证码,短信验证码,或者根据totp或者hotp生成的默认30秒一变的6位数字。 不过开发者要注意,必须要在验证成功后失效那个验证码,不然就会导致重放攻击。 对于邮箱验证码,服务器…...
Oracle数据库加密与安全
Wallet简介: Oracle Wallet(即内部加密技术TDE( Transparent DataEncryption) TDE是 Oracle10gR2中推出的一个新功能,使用时要保证Oracle版本是在10gR2或者以上 Wallet配置: 1.创建一个新目录,并指定为Wallet目录 /home/oracle…...
【YOLO格式的数据标签,目标检测】
标签为 YOLO 格式,每幅图像一个 *.txt 文件(如果图像中没有对象,则不需要 *.txt 文件)。*.txt 文件规格如下: 每个对象一行 每一行都是 class x_center y_center width height 格式。 边框坐标必须是 归一化的 xywh 格式&#x…...
Memcached内存碎片清理术:优化缓存性能的策略
标题:Memcached内存碎片清理术:优化缓存性能的策略 内存碎片是Memcached在长期运行过程中常见的问题,它会降低缓存效率并影响性能。作为高效的分布式内存缓存系统,Memcached提供了多种内存碎片整理策略。本文将详细介绍这些策略&…...
禁止使用存储过程
优质博文:IT-BLOG-CN 灵感来源 什么是存储过程 存储过程Stored Procedure是指为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户可通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行。 …...
Flink异常:org/apache/hadoop/hive/ql/parse/SemanticException
在flink项目中跑 上面这段代码出现如下这个异常, java.lang.NoClassDefFoundError: org/apache/thrift/TException 加上下面这个依赖后不报错 <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId…...
Java:构造函数与对象
第一章:构造函数揭秘 —— 创造者的第一次触碰 构造函数,顾名思义,是用于创建和初始化对象的特殊方法。它没有返回类型,名字与类名一致。构造函数是对象诞生的第一步,也是最至关重要的一步。让我们通过一个生动的例子…...
Leetcode(经典题)day1
删除有序数组中的重复项|| 80. 删除有序数组中的重复项 II - 力扣(LeetCode) 和之前的删除有序数组中的重复项|相似,这里是要求最多出现两次,所以多加一个变量来记录出现次数即可,整体上还是使用双指针,…...
k8s record 20240710 监控
不是adaptor 是opetator 案例 监控有了,日志搜集呢? 一、kubelet 的小弟 kubelet — 负责维护容器的生命周期,节点和集群其他部分通信 cAdvisor 集成在 Kubernetes 的 kubelet 中,能够自动发现和监控集群中所有的容器。dockers…...
pdf工具
iLovePDF | 为PDF爱好者提供的PDF文件在线处理工具 https://www.ilovepdf.com/zh-cn 图片 pdf 合并成一个pdf也可以拆分...
百度文心4.0 Turbo开放,领跑国内AI大模型赛道!
百度文心4.0 Turbo开放,领跑国内AI大模型赛道! 前言 文心一言大模型 就在7月5日,在2024世界人工智能大会 (WAIC) 上,百度副总裁谢广军宣布文心大模型4.0 Turbo正式向企业客户全面开放!这一举动直接引发了业界的关注。那…...
Vue3 defineProps的使用
1.什么是defineProps defineProps是Vue3中的一种新的组件数据传递方式,可以用于在子组件中定义接收哪些父组件的props。当父组件的props发生变化时,子组件也会随之响应。 2.如何使用defineProps? 在子组件中可以使用defineProps声明该组件…...
面向对象进阶基础练习
Java学习笔记(新手纯小白向) 第一章 JAVA基础概念 第二章 JAVA安装和环境配置 第三章 IntelliJ IDEA安装 第四章 运算符 第五章 运算符联系 第六章 判断与循环 第七章 判断与循环练习 第八章 循环高级综合 第九章 数组介绍及其内存图 第十章 数…...
iPhone删除所有照片的高效三部曲
苹果手机用久了,系统缓存包括自己使用手机留下的内存肯定会越来越多。其中,相册中的照片数量可能会急剧增加,占据大量的存储空间。当用户们想要对相册进行彻底清理,实现iPhone删除所有照片时,不妨跟随以下详细的三部曲…...
OceanBase 配置项系统变量实现及应用详解(2):系统变量的定义及使用场景
在上一篇博客,配置项的定义及使用方法,详细阐述了配置项的概念及其基本应用方式,这些配置项能够调控集群或租户的行为方式。然而,在实际使用OceanBase的过程中,我们有时仅希望针对当前会话调整某些行为特性,…...
本地部署,去除动漫图像背景Anime Remove Background
目录 摘要 引言 深度学习在动漫角色中的应用 1.U-Net 2.Mask R-CNN 3.ISNet 模型 4.MODNet 模型 5.InSPyReNet 模型 本地部署 运行效果 测验结果 Tip: 摘要 动漫图像背景去除是一项在图像处理和计算机视觉领域具有重要应用的技术,广泛应用于…...
wireshark与tcpdump使用
wireshark 协议层过滤指令ipip.addr 1.1.1.1ip.src 1.1.1.1ip.dst 1.1.1.1tcptcp.port 80tcp.srcport 80tcp.dstport 80tcp.len > 0tcp.flags.fin 1...
【密码学】密码学中的四种攻击方式和两种攻击手段
在密码学中,攻击方式通常指的是密码分析者试图破解加密信息或绕过安全机制的各种策略。根据密码分析者对明文、密文以及加密算法的知识程度,攻击可以分为以下四种基本类型: 一、四种攻击的定义 (1)唯密文攻击(COA, C…...
网络层的角色与重要性:互联网通信的关键
本章讨论网络层及网络互连问题,也就是讨论多个网络通过路由器互连成为一个互连网络的各种问题。在介绍网络层提供的两种不同服务后,我们开始讲解本章的核心内容——网际协议(IP),这是本书的一项重点内容。只有较深入地…...
Transformer模型:WordEmbedding实现
前言 最近在学Transformer,学了理论的部分之后就开始学代码的实现,这里是跟着b站的up主的视频记的笔记,视频链接:19、Transformer模型Encoder原理精讲及其PyTorch逐行实现_哔哩哔哩_bilibili 正文 首先导入所需要的包:…...
Agent 一接文件树就开始改错目录:从 Working Directory Claim 到 Path Scope Fence 的工程实战
不少团队把文件树接进 Agent 后,第一次翻车往往不是改不动代码,而是改到了错误目录。一个修复本该落在 services/api,结果模型顺手把 infra/terraform 里的同名文件也改了;一个看似无害的批量替换,把 monorepo 里另一条…...
APK Installer:重新定义Windows运行Android应用的突破性方案
APK Installer:重新定义Windows运行Android应用的突破性方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在Windows系统上运行Android应用的传统方案往往…...
用Python复现黏菌算法SMA:从生物觅食到代码优化的完整实战
用Python复现黏菌算法SMA:从生物觅食到代码优化的完整实战 黏菌算法(Slime Mould Algorithm, SMA)作为一种新兴的智能优化算法,近年来在工程优化、机器学习参数调优等领域展现出独特优势。本文将带您从生物行为理解到Python实现&a…...
【Qt学习】Windows上环境配置与项目初识
文章目录环境配置下载与安装环境变量设置查看示例程序Qt Creator界面说明快捷键项目帮助构建模式编码中文问题创建第一个Qt项目创建项目项目文件程序入口本文参照视频学习记录: https://www.bilibili.com/list/watchlater?oid970696801&bvidBV1Jp4y167R9视频中…...
ElevenLabs四川话API响应延迟突增故障复盘:一次DNS劫持引发的方言语音服务中断(附实时监控SLO看板模板)
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs四川话语音服务中断事件全景速览 2024年10月12日凌晨,ElevenLabs面向中国西南地区用户提供的方言语音合成服务(四川话模型 eleven_turbo_v2.5-sichuan)突发…...
Cocos学习笔记:帧动画制作与动画编辑器使用
一、帧动画基础原理核心逻辑:帧动画本质是逐帧替换精灵(Sprite)的显示图片,通过控制图片切换频率,让静态序列图呈现连续动态效果。视觉原理:人眼存在视觉残留特性,短时间内连续播放 24 帧以上图…...
别再傻等!解决conda install nb_conda卡在solving environment的3个高效方法(附清华源配置)
彻底解决conda install卡在solving environment的终极指南 当你满怀期待地在终端输入conda install nb_conda准备为Jupyter Notebook添加环境管理功能时,却发现进度条永远卡在"solving environment"这一步,这种体验就像在高速公路上遇到无休止…...
ZYNQ启动全解析:从BootROM到你的App,SD卡与QSPI Flash烧录究竟差在哪?
ZYNQ启动全解析:从BootROM到你的App,SD卡与QSPI Flash烧录究竟差在哪? 当一块ZYNQ开发板静静躺在桌面上,按下电源键的瞬间,芯片内部究竟发生了什么?为什么有的工程师选择SD卡启动,而另一些则坚…...
ElevenLabs客家话语音合规红线预警:GDPR+《生成式AI服务管理暂行办法》双框架下,3类方言数据采集授权漏洞与2种语音指纹脱敏方案(含可审计代码模板)
更多请点击: https://codechina.net 第一章:ElevenLabs客家话语音合规红线预警总览 ElevenLabs 作为前沿的AI语音合成平台,其多语言支持能力持续扩展,但对客家话等非标准化方言的生成存在明确的合规边界。平台未将客家话列入官方…...
XXMI启动器:一站式二次元游戏模组管理终极指南,轻松管理热门游戏模组
XXMI启动器:一站式二次元游戏模组管理终极指南,轻松管理热门游戏模组 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher XXMI启动器是一款功能强大的开源游戏…...
