首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何设计一个安全的短信接口?

但是其实提供短信验证码、或者说任何可以触发短信发送的接口,都是存在风险的,很有可能被黑产或攻击者利用。我们今天主要聊一聊短信接口相关的风险和预防措施。 背景 短信被刷啦!短信又被刷啦!...,但是不管是图片还是滑动验证,都是可以被破解的,一但被破解,那你的短信接口相当于对攻击者毫不设防,非常危险。...再比如说,用户当天可能由于各种原因,一段时间内某个操作频繁的获取验证码,导致短信验证达到上限,会影响到他所有短信接口都无法使用。...这个时候,用户就可以间接的触发短信,比如:${nickName}邀请您注册/回归XXX产品。那么这种接口很可能被攻击者利用,比如把nickName修改为攻击者想要发送的内容。...,则认为存在风险操作,可以做对应的处理 配置相应的规则,如果某个模板的短信内容(和模板的区别是,变量一直没有变化)重复N次则认为存在风险 等等 风控不仅仅适用于短信接口的风险识别,还包括注册、登录、支付操作等等

3.4K20

阿里短信通知的接入与实现(二)暨云通信短信平台API接口调用

事情变化太快,上线还不到一个月的注册短信验证功能就遇到了平台搬家的尴尬。阿里云发了一个邮件通知。...原淘宝短信和阿里云市场短信将迁移到云通信平台,自2018年1月22日期,原平台将被停用,这之前是平台迁移期,需要用户抓紧迁移。也就是阿里云给大家留了一个月的窗口期。...具体接入操作,根据阿里提供的demo接入还是很方便快捷的。 首先,申请AccessKey 登录云通信平台控制台申请AccessKey,并添加短信签名和短信模版。...3、引入文件并载入短信平台节点。...(array(  // 短信模板中字段的值             "code"=>$num         ), JSON_UNESCAPED_UNICODE));         //选填-发送短信流水号

10.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    短信接口攻击事件(一)紧张的遭遇战险胜

    当然,接口被恶意访问的这个问题已经解决,因此写了这篇文章,可以做一下简单的记录,并且静下心来分析一下其中的问题了,看完这个案例,大家也可以一起讨论讨论。 问题分析 ?...找到最关键的问题,虽然存在网络攻击,但是真正需要立刻解决的是短信服务接口的调用问题,当务之急是修改短信发送接口,尽快止损。...黑名单模式拦截 由于接口一直被调用,需要紧急处理,减少短信服务费用的损失,因此一开始的出发点放在了手机号码上,针对手机号码做验证,采用黑名单的模式,对于此接口中出现的号码,在一定次数的请求后就立刻加入到黑名单列表中...因此直接返回错误码不作处理即可,这个补丁打上之后,短信服务费用的损失就不会再增加了。...而且是短信发送的接口,看着一条条的短信因为攻击而发送出去,那一条条的短信,是白花花的银子啊,能不紧张吗!

    1.3K60

    基于redis实现滑动窗口式的短信发送接口限流

    滑动窗口短信发送限流算法 1.有两条规则 基于IP的限制和基于手机号的限制 IP规则: 1分钟限制5 10分钟限制30 1小时限制50 手机号规则: 1分钟限制1 10分钟限制5 1小时限制...10 2.滑动窗口就是随着时间的流动 , 进行动态的删减区间内的数据 , 限制时获取区间内的数据 最主要的是用到了redis的zRemRangeByScore 来进行删除区间外的数据 <?...php /*滑动窗口短信发送限流算法 1.有两条规则 基于IP的限制和基于手机号的限制 IP规则: 1分钟限制5 10分钟限制30 1小时限制50 手机号规则: 1分钟限制1 10分钟限制...$redis->multi(); $redis->zRemRangeByScore($redisKey, 0, $score - $ruleTime);//移除窗口以外的数据

    2K20

    thinkPHP框架实现的短信接口验证码功能示例

    本文实例讲述了thinkPHP框架实现的短信接口验证码功能。...分享给大家供大家参考,具体如下: 我用的是一款名叫 短信宝 的应用,新注册的用户可以免费3条测试短信,发现一个BUG,同个手机可以无限注册,自己玩玩还是可以的。...里面的短信接口代码什么信息都没有,感觉看得不是很明白,自己测试了一遍,可以用,直接调用就可以的,如果要用到项目中还有很多细节要处理,比如 设置一个验证码的存活时间,还有点击按钮每隔一分钟才能按一次,还有判断这个用户发的短信另一个用户能不能用...extends Controller { //视图 public function index() { $this->display(); } //短信接口...$num;//要发送的短信内容,随便设置 $phone = $phonenum;//要发送短信的手机号码 $sendurl = $smsapi."sms?

    3.2K40

    接口中可以包含的组成部分

    接口中可以包含的组成部分   1.抽象方法   2.常量   3.默认方法(JDK8)   4.静态方法(JDK8)   5.私有方法(JDK9) 1.抽象方法   public abstract 返回值类型...方法名称(参数类型 参数名称);  注意:     1.接口中的抽象方法,修饰符如果自己写必须是:public abstract     2.接口中的抽象方法,修饰符可以省略不写,默认就是:public...如何使用接口与实现类?     ...1.创建对象       接口名称 引用名 = new 实现类名称();     2.调用       引用名.抽象方法(参数); 注意:     1.左边是接口类型,那么只能调用接口当中定义好的内容...(即接口隔离、接口通用)     2.当调用接口当中的抽象方法时,真正运行的是右侧new的时候类的具体方法内容。     3.总结一句话:编译的时候看左边,运行的时候看右边。

    2.6K10

    小程序可以使用公众号的UnionID,再次登录免授权?

    前言:微信公众平台在7月26号发文,更新了同一公众平台下的公众号、APP和小程序可以共用UnionID。...看到这篇发文之后,很多小程序开发者都兴奋了一把,我也小激动了一下,先看一下大家的评论: ? 可以说是好评如潮呀!...这个新功能好处在于,用户在一个公众平台账号体系下,只要被其中一个公众号、APP或者小程序授权了,在其他应用里面就不需要再授权了,直接可以获取到相同的UnionID。...于是我家小程序也不能落伍呀,果断要把这么好的功能加上~ ? (图片来源于网络) 经过一翻折腾后,发现有问题呀,有些用户可以不用再弹出授权框,有些用户始终都会弹出授权框。于是再次查看了官方文档。...、公众号、小程序,如果用户已经关注公众号,或者曾经登录过App或公众号,则用户打开小程序时,开发者可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。

    2.7K70

    java深拷贝的实现方式_接口可以创建对象吗

    Cloneable接口与Serializable接口都是定义接口而没有任何的方法。Cloneable可以实现对象的克隆复制,Serializable主要是对象序列化的接口定义。...很多时候我们涉及到对象的复制,我们不可能都去使用setter去实现,这样编写代码的效率太低。JDK提供的Cloneable接口正是为了解决对象复制的问题而存在。...Cloneable结合Serializable接口可以实现JVM对象的深度复制。...Java JDK定义的接口 本文涉及到的两个接口都是功能定义接口没有实际的方法声明: java.lang.Cloneable /* * Copyright (c) 1995, 2004, Oracle...1L,一个是随机生成一个不重复的 long 类型数据(实际上是使用 JDK 工具生成) // 如果没有特殊需求,就是用默认的 1L 就可以 static final long serialVersionUID

    1.5K10

    Spring Boot 定义接口的方法是否可以声明为 private?

    可以看到,HandlerMethod 体系下的类并不多: HandlerMethod 封装 Handler 和具体处理请求的 Method。...,其实 @ResponseStatus 注解灵活性很差,不实用,当我们定义一个接口的时候,很难预知到该接口的响应状态码是 200。...,这些参数值组成一个数组,然后调用 doInvoke 方法执行,在 doInvoke 方法中,首先获取到 bridgedMethod,并设置其可见(意味着我们在 Controller 中定义的接口方法也可以是...当我们没看 SpringMVC 源码的时候,我们就知道接口方法最终肯定是通过反射调用的,现在,经过层层分析之后,终于在这里找到了反射调用代码。...5.小结 现在大家可以回答文章标题提出的问题了吧?

    60330

    短信发送接口被恶意访问的网络攻击事件(三)定位恶意IP的日志分析脚本

    前言 承接前文《短信发送接口被恶意访问的网络攻击事件(二)肉搏战-阻止恶意请求》,文中有讲到一个定位非法IP的shell脚本,现在就来公布一下吧,并没有什么技术难度,只是当时花了些时间去写这个东西,类似于紧急修复线上...bug一样的赶这个小脚本,虽然现在看来挺简单的,但是在当时紧张的情景中,赶这个小脚本儿的过程确实是很有趣的。...,因为被攻击的URL只有一个,这里的做法是通过grep命令查找请求了此URL的日志行,查找的值为api地址的名称字段,比如此URL的地址为'/message/send/',而send字段只存在于此URL...第二步是从所有的行中提取出IP列,统计出所有出现的IP和此IP请求接口URL的次数,存入ip.txt文件。...接着第三步是通过对ip.txt文件的分析,定位出所有的不正常的IP,分析的比较简陋,做法是请求超过5次的都视为非法IP,其实5次已经算多的了,应该再小一点,但是其实在分析文件ip.txt文件过程中,发现正常的

    1.2K50

    接口中方法可以不是抽象的「JDK8接口新语法的深度思考」

    前言 在传统的接口语法中,接口中只可以有抽象方法。在是在实际的使用中,我们往往会需要用到很多和接口相关的功能(方法),这些功能会单独的拿出开放在工具类中。...接口可以说是特殊的类 所以通过接口名可以调用接口中的静态方法 HelloInterface.printHello(); } } interface HelloInterface...,一切都不一样了,因为有接口静态方法,可以直接将接口对象的获取放在接口的静态方法中。...通过API文档,可以找到 Comparator 接口(比较器),在这个接口中现在就有很多的静态方法(JDK8)。如图 通过这些静态方法,就可以通过接口直接获取比较器对象。...接口中的默认方法,实现类能不能继承到? 答:这个当然是可以的,并且在实现类中依然可以进行方法的覆盖。

    55520

    16美元就可以打包带走所有短信,你的手机号还安全吗?

    近日,他发表了一篇新文章表示黑客只需16美元(约人民币100元)就可以获取他的所有短信,并且在文章内详细说明了他委托的白帽黑客是如何重定向其所有短信,然后靠验证码登陆了他的各种账号。 ?...Lucky225表示,只要创建一个账户,选择最便宜的16美元的套餐就可以完成短信截取攻击。他用一张预付卡购买了套餐之后,只需用假信息填写完LOA信息就能更改接收的手机号。...禁止非法行为的提示在犯罪者眼里简直是形同虚设,他们可以利用该功能拦截短信,甚至还可以回复。并且,攻击者能够通过短信来重置密码或者通过短信来接收验证码,从而访问受害者的任何账户。...新型的SMS重定向攻击,只需要通过此类第三方服务商就可以进行攻击。整个过程对于用户来说,除了收不到短信,并不会有其他影响,因此很难及时发现,而这同时也给了攻击者充足的攻击时间。...即便用户使用账号密码进行登录,同样可以使用短信功能来修改其密码进行登录。 因此,短信安全必须得到更多的重视。

    1.6K30

    Java 中的接口还可以这样用,你知道吗?

    Java 程序员都知道要面向接口编程,那 Java 中的接口除了定义接口方法之外还能怎么用你知道吗?今天阿粉就来带大家看一下 Java 中的接口还可以有哪些用法。...,就可以考虑增加一个接口的默认方法来使用,简单来说就是实现类可以不覆写 default 方法。...通过源码我们可以知道 RandomAccess 是用来标识子类是否实现了该接口,如果实现了则走实现了的逻辑,没有实现就走没有实现的逻辑,所以我们在日常开发中也可以利用这个特性,当我们有不同的子类需要根据情况进行不同的实现逻辑的时候就可以采用定义一个空接口来标记一下...静态方法 跟默认方法一样,JDK 8 还支持在接口中增加静态方法,虽然说在接口中定义静态方法的做法不常见,但是当需要使用的时候也是可以支持的,避免在创建一个单独的工具类,跟在类中定义的静态方法一样,我们可以直接通过接口名称引用静态方法...总结 今天阿粉给大家总结了一个接口的使用方法,后面在日常的开发中我们不单单只是在接口中定义抽象方法,也可以根据需求增加默认方法或者私有方法,以及在需要用到标记的时候也可以通过定义一个空接口来实现,怎么样是不是很棒

    64620

    微服务如何保证对外接口的安全?可以这样做!

    如果你的微服务需要向第三方开放接口,如何确保你提供的接口是安全的呢?1. 什么是安全接口通常来说,要将暴露在外网的 API 接口视为安全接口,需要实现防篡改和防重放的功能。1.1 什么是篡改问题?...虽然使用 HTTPS 协议能对传输的明文进行加密,但黑客仍可截获数据包进行重放攻击。两种通用解决方案是:使用 HTTPS 加密接口数据传输,即使被黑客破解,也需要耗费大量时间和精力。...每次请求接口时生成 timestamp 和 nonce 两个额外参数,其中 timestamp 代表当前请求时间,nonce 代表仅一次有效的随机字符串。...说了这么久,现在让我们从代码的角度来看看如何安全地对外提供接口。...关注公众号:woniuxgg,在公众号中回复:笔记  就可以获得蜗牛为你精心准备的java实战语雀笔记,回复面试、开发手册、有超赞的粉丝福利!

    50710

    推荐一个完善的停车管理系统(停车收费、物业管理、物联网、自助缴费)含源码

    ,数据库mysql/mongodb/redis,即时通讯底层框架netty4,安卓和ios均为原生开发,后台管理模板vue-typescript-admin-template,文件服务fastDFS,短信目前仅集成阿里云短信服务...(3)用户手机查询停车记录详情可自主缴费(支持微信,支付宝,银行接口支付,支持每个停车场指定不同的商户进行收款),支付后出场在免费时间内会自动抬杆。...例如短信发送,支付,订单,停车场系统接口,停车场后台管理,停车场提供者服务等均为独立的服务。...支持查询附近停车场功能 3.停车记录管理 详细记录产生时间,地点,进出口位置,进出时间,异常数据实时推送与快速处理 4.支付机构管理 每个停车场的支付账号均可以独立配置,支持同一个停车场使用多家支付机构进行支付...5.支付与优惠活动管理 支付宝与微信,银联都均支持免密支付(无感支付)。本系统自带优惠券功能,支持支持多种套餐自定义与用户进行快捷手机上下单随时购买。

    4.6K40

    马斯克看上的脑机接口公司:“意念控制”iPad发短信,浏览新闻无压力

    这里The stentrode会连接到一个叫做“Synchron Switch”的小装置上,它被植入使用者的胸口皮肤下,可以随时将脑部无线信号传送到外部信号接收器上。...当然,这项技术也并非“横空出现”,背后的公司Synchron已经研究了好几年的脑机接口。 来自脑机接口公司Synchron 所以Synchron是一家怎样的脑机接口公司?...事实上,Neuralink和Synchron在脑机接口上走的是两条截然不同的路子。...Neuralink这项脑机接口实验,仍然需要切除患者的一大块头骨,而且尚未获得FDA人体试验的批准。 除此之外,也有研究担心开颅式的脑机接口会形成疤痕组织,从而影响设备接收信号的质量。...当然,这两种都属于植入式的脑机接口组织,目前还有不少机构在研究非侵入式的脑机接口技术,比如通过这样的脑电帽来检测大脑中的电信号等。 最后,说回Synchron的这种静脉植入如脑机接口。

    49820

    短信发送接口被恶意访问的网络攻击事件(四)完结篇--搭建WAF清理战场

    前言 短信发送接口被恶意访问的网络攻击事件(一)紧张的遭遇战险胜 短信发送接口被恶意访问的网络攻击事件(二)肉搏战-阻止恶意请求 短信发送接口被恶意访问的网络攻击事件(三)定位恶意IP的日志分析脚本...整理了一些留言,由于量有些大,就不全部贴出来了,谢谢你们的建议。 星多天空亮,人多智慧广 ? ? 也可以到对应的博客留言中查看。 有人针对这次攻击给了一些处理的建议,也提出了不少的方案。...在做日志分析的时候,就根据一位朋友提出的建议,通过日志文件去分析了请求者的request,确实是有规律可循的,可以很简单的就被识别,也听取了一些处理经验,在处理方式上没有特别的死板。...图中可以直观的看到最新的防御方式为:WAF+验证码,在搭建了WAF之后,不仅仅是此次的接口攻击,对于其他类型的攻击以及一些骚扰也都有很好的防御效果,不过搭建过程较复杂,配置也比较麻烦,但是有很好的拦截功能...这次事件虽然是发生在APP移动端,但是在WEB模块中,如果不做好接口安全,肯定也会出现类似的情况,而且WEB端的代码是可以被查看的,如果被盯上肯定更加危险。

    1.2K60
    领券