短信接口被恶意盗刷

news2024/9/9 6:26:09

短信接口被恶意盗刷是指攻击者通过各种手段,大量发送短信请求,导致短信资源被浪费,服务提供商可能面临经济损失,正常用户的服务也可能受到影响。以下是一些可能导致短信接口被恶意盗刷的原因和相应的解决方案:

原因:

1. 接口暴露:短信接口没有进行适当的安全防护,被攻击者发现并利用。

2. 竞争对手或黑客的恶意攻击:可能出于各种目的,如破坏服务、获取利益等。

解决方案:

1. 必备的参数校验:

• 手机号合法性校验:不能为空,必须是11位,以1开头,可校验前两位或前三位号段,同时过滤特殊号码。

2. 限制请求方法和请求头:使用post请求,并校验user-agent和referer,防止通过httpclient发送请求和伪装成正常浏览器请求。还可以在header里增加额外参数,如key或ticket等。

3. 请求次数限制:利用redis的incrby实现计数,增加ip次数限制和总的请求次数限制,例如限制同一ip在指定时间段内(如5分钟)的请求次数上限,以及设置整个系统在特定时间段内(如5分钟)的总请求量阈值;同一个手机号在特定时间内(如30秒)不可重复请求验证码。

4. 动态请求:将短信验证码接口动态化,比如采用基于时间戳签名参数的方式。前后端约定签名参数生成算法,通过md5等算法根据手机号和当前时间生成key。前端页面通过js脚本生成“签名”,服务端进行“验签”,同时时间校验要留buffer,因为客户机时间与服务器时间可能不完全相同。这样盗刷者在不知道签名算法的前提下,其盗刷流量会受到时间维度的限制。

5. 使用post请求:相较于get请求,增加攻击者的尝试成本。

6. 使用https:在app端能起到较好的保护作用,防止盗刷者通过抓包工具直接获取接口详情信息。

7. 周期性修改接口:随着项目迭代升级,随机变更重点接口的请求地址,前后端同步更新,降低接口被长期攻击的风险。

8. 其他措施:如设置短信发送时间间隔、获取次数限制,对短信调用ip进行限制;进行ip地址风险监测、设备风险监测、采用智能验证码拦截以及风控引擎识别等技术手段。

同时,建议选择可靠的短信服务提供商,他们通常会提供一些基本的防护措施和监控功能。另外,要定期审查和更新安全策略,以应对不断变化的安全威胁。如果发现短信接口被恶意盗刷,应及时采取措施,如暂停接口使用、分析攻击来源、加强防护等,并视情况决定是否需要报警。

以下是一个使用 Java 实现部分防护措施的示例代码,用于限制同一 IP 在一段时间内的请求次数:
import redis.clients.jedis.Jedis;

public class SmsProtection {

    private Jedis jedis; 
    private int requestLimitPerIp; 
    private long timeWindowInSeconds; 

    public SmsProtection(int requestLimitPerIp, long timeWindowInSeconds) {
        jedis = new Jedis("localhost"); // 连接 Redis 服务器,根据实际情况修改连接信息
        this.requestLimitPerIp = requestLimitPerIp;
        this.timeWindowInSeconds = timeWindowInSeconds;
    }

    public boolean isRequestAllowed(String ip) {
        String key = "sms_request_count:" + ip;
        Long count = jedis.incr(key); 
        if (count == 1) {
            jedis.expire(key, timeWindowInSeconds); 
        }
        return count <= requestLimitPerIp; 
    }

    public static void main(String[] args) {
        SmsProtection protection = new SmsProtection(50, 5 * 60); // 5 分钟内限制 50 次请求
        String ip = "127.0.0.1"; 
        if (protection.isRequestAllowed(ip)) {
            System.out.println("允许发送短信验证码");
        } else {
            System.out.println("请求过于频繁,已超过限制");
        }
    }
}
上述代码中,SmsProtection类使用 Redis 来记录每个 IP 的请求次数。isRequestAllowed方法接收 IP 地址作为参数,通过incr方法增加对应 IP 的请求计数,如果是首次请求(计数为 1),则设置该键的过期时间为指定的时间窗口。如果请求次数未超过限制,返回true,表示允许发送短信验证码;否则返回false。

请注意,这只是一个简单的示例代码,实际应用中还需要结合具体的业务需求和架构进行完善和优化,例如处理 Redis 连接异常、分布式环境下的 Redis 使用等。并且,以上的安全措施并不能完全保证短信接口的绝对安全,还需要综合多种手段来加强防护。同时,要密切关注系统的运行状况,及时发现和处理异常情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Windows API每日一练》23.1 Windows多媒体

本节我们将讲述单线程到多线程的演进过程&#xff0c;以及进程与线程的区别。 本节必须掌握的知识点&#xff1a; 多媒体硬件 API 概述 第172练&#xff1a;交互输入MCI命令 23.1.1多媒体硬件 多媒体硬件是指用于处理音频、视频和其他多媒体内容的硬件设备。在计算机系统中&…

迈尔沃护眼大路灯怎么样?书客、迈尔沃、霍尼韦尔护眼灯测评PK!

迈尔沃护眼大路灯怎么样&#xff1f;作为一名专业的实测博主&#xff0c;温馨提示大家&#xff0c;虽然护眼落地灯是个好东西&#xff0c;它能够提供柔和舒适的环境光&#xff0c;减少对眼睛的伤害&#xff0c;但是千万别乱买跟风&#xff0c;盲目入手踩雷率80%以上。那么如何辨…

SpringBoot集成 Druid 连接池及监控配置详解

Spring Boot 集成 Druid 连接池及监控配置详解 Spring Boot 是当前 Java 开发中的热门框架&#xff0c;而在数据库连接池的选择上&#xff0c;Druid 因其性能和功能强大也备受青睐。在这篇文章中&#xff0c;我们将深入探讨如何在 Spring Boot 项目中集成 Druid 连接池&#x…

大厂linux面试题攻略二之Linux系统管理

一、Linux系统管理权限优化类 1.简述Linux权限划分原则&#xff08;经验类&#xff09; 文件权限&#xff1a; 默认权限&#xff1a; 特殊权限; ACL权限&#xff1a; sudo授权&#xff1a; 文件系统属性权限&#xff1a; 解题思路&#xff1a; 注意权限分离(Linux系统…

入门 PyQt6 看过来(案例)17~ 表格

PyQt6提供了两种用于有规律地呈现更多数据的控件&#xff0c;一种是表格结构的控件(QTableView)&#xff0c;另一种是树形结构的控件(QTreeView)。表格控件属于QTableView类&#xff0c;QTableWidget继承于QTableView。 1 QTableView 表格控件 QTableView控件中QStandItemMod…

安胜:促进数据跨境有序流动 赋能企业数字化转型

数字化转型浪潮中&#xff0c;数据出境面临众多机遇与挑战。从业务角度&#xff0c;经济全球化推动外商投资、跨境业务等业务合作&#xff0c;企业数据跨境流动需求强烈&#xff0c;但数据违规现象频发&#xff0c;不仅导致巨大经济损失&#xff0c;还挑战了国家安全。从监管层…

什么是 HTTP/3?HTTP/3 为何席卷全球?HTTP/3 中有什么新内容?为什么需要它?

超文本传输​​协议 ( HTTP ) 是互联网的基石&#xff0c;有助于加载网页、流式传输视频以及为您最喜爱的应用程序获取数据。 去年 &#xff0c;负责定义互联网技术的组织 互联网工程任务组 ( IETF )对该协议的新版本 HTTP/3 进行了标准化。自那时起&#xff0c;HTTP/3 和相关…

KubeSphere 部署向量数据库 Milvus 实战指南

作者&#xff1a;运维有术星主 Milvus 是一个为通用人工智能&#xff08;GenAI&#xff09;应用而构建的开源向量数据库。它以卓越的性能和灵活性&#xff0c;提供了一个强大的平台&#xff0c;用于存储、搜索和管理大规模的向量数据。Milvus 能够执行高速搜索&#xff0c;并以…

纷享销客北方战区游学营举行 五大专项助力伙伴业务“倍速增长”

首届纷享销客北方战区渠道核心伙伴游学营日前在山东济南登场&#xff0c;此次游学营一共设置了五大模块&#xff0c;包括财务专项、组织建设专项、团队成长专项、开源专项、续费及增购专项&#xff0c;旨在帮助纷享销客渠道伙伴夯实高质量增长基础&#xff0c;全方位提升企业经…

上海亚商投顾:沪指震荡收跌 地产、芯片股逆势走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场昨日探底回升&#xff0c;三大股指小幅下跌&#xff0c;黄白二线分化明显。 商业航天概念继续走强&#…

hive 中编写生成连续月sql

记录一下 sql 编写生成从一个确定的起始月份到当前月份的连续月份序列 SELECT substr(add_months(table1.start_dt,table2.pos),1,4) AS INDICT_YEAR,substr(add_months(table1.start_dt,table2.pos),1,7) AS INDICT_MON FROM (SELECT 2024-01-01 AS start_dt,substr(CURRE…

wpf基础

快速换行的快捷键 vs 工具->选项->文本编辑器->XAML->Formatting(格式化)->spacing(间距)-> 选择第三个 &#xff0c;将各个属性分行放置。 然后按CtrlKD 如何快速生成下面的代码 鼠标放在Slider_ValueChanged上面然后FnF12 就可以快速生成 wpf中的绑定 在…

Golang处理Word文档模板实现标签填充|表格插入|图标绘制和插入|删除段落|删除标签

本教程主要实现【Golang处理Word文档模板实现标签填充|表格插入|图标绘制和插入|删除段落|删除标签】。 本文源码&#xff1a;https://gitee.com/songfayuan/go-zero-demo 教程源码分支&#xff1a;master 分支&#xff08;_examples/word-template/fill-word-template.go&…

ZFIU001 批导会计凭证报错,通过监控点和消息类来定位触发的位置

在创建会计凭证的时候&#xff0c;发送错误&#xff0c;通过打消息类和消息号的条件断点/监控点才解决 文章目录 报错消息号&#xff1a;F5846 创建监控点创建条件断点 报错原因非常注意 报错 消息号&#xff1a;F5846 创建监控点 创建条件断点 报错原因 非常注意

Java8新特性之Stream-Map

Map一些新方法的具体使用案例 1、getOrDefault:default V getOrDefault(Object key, V defaultValue) package com.qbb.threadpool;import java.util.HashMap; import java.util.Map;/*** author QiuQiu&LL (个人博客:https://www.cnblogs.com/qbbit)* version 1.0* date…

力扣高频SQL 50题(基础版)第三十四题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第三十四题1978.上级经理已离职的公司员工题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题&#xff08;基础版&#xff09;第三十四题 1978.上级经理已离职的公司员工 题目说明 表: Employees -------…

论文阅读:基于生物神经元的模拟游戏世界感知与学习

论文内容概述 AI要90分钟学会的游戏&#xff0c;人脑细胞竟在5分钟搞定了。Cell在2022年的研究中&#xff0c;使用80万体外神经元细胞(DishBrain)竟然学会玩70年代经典街机游戏Pong&#xff01; 论文链接&#xff1a;In vitro neurons learn and exhibit sentience when emb…

HCIA总结

一、情景再现&#xff1a;ISP网络为学校提供了DNS服务&#xff0c;所以&#xff0c;DNS服务器驻留在ISP网络内&#xff0c;而不再学校网络内。DHCP服务器运行在学校网络的路由器上 小明拿了一台电脑&#xff0c;通过网线&#xff0c;接入到校园网内部。其目的是为了访问谷歌网站…

ctfshow 权限维持 web670--web679

web670 <?php// 题目说明&#xff1a; // 想办法维持权限&#xff0c;确定无误后提交check&#xff0c;通过check后&#xff0c;才会生成flag&#xff0c;此前flag不存在error_reporting(0); highlight_file(__FILE__);$a$_GET[action];switch($a){case cmd:eval($_POST[c…

2024年技校云计算实验室建设及云计算实训平台整体解决方案

随着信息技术的飞速发展&#xff0c;云计算已成为推动数字化转型的关键力量。技校作为培养技能型人才的摇篮&#xff0c;建设云计算实验室并配套完善的实训平台&#xff0c;对于提升学生的专业技能、增强就业竞争力具有重要意义。本文旨在提出2024年技校云计算实验室建设及云计…