专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
目录
相关文章推荐
51好读  ›  专栏  ›  ImportNew

面试官:聊聊如何防止别人恶意刷接口

ImportNew  · 公众号  · Java  · 2024-04-29 14:24

正文

请到「今天看啥」查看全文



但有个问题是:如果图形验证码太复杂了,会对正常用户使用造成一点的困扰,增加了用户注册的成本,让用户注册功能的效果会大打折扣。


因此,仅靠图形验证码,防止用户注册接口被刷,难道太大了。


后来,又出现了一种移动滑块形式的图形验证方式,安全性更高。



此外,使用验证码比较多的地方是发手机短信的功能。


发手机短信的功能,一般是购买的云服务厂商的短信服务,按次收费,比如:发一条短信 0.1 元。


如果发送短信的接口,不做限制,被用户恶意调用,可能会产生非常昂贵的费用。


3、鉴权


对于有些查看对外的API接口,需要用户登录之后,才能访问。


这种情况就需要校验登录了。


可以从当前用户上下文中获取用户信息,校验用户是否登录。


如果用户登录了,当前用户上下文中该用户的信息不为空。


否则,如果用户没登录,则当前用户上下文中该用户的信息为空。


对于有些重要的接口,比如订单审核接口,只有拥有订单审核权限的运营账号,才有权限访问该接口。


我们需要对该接口做功能权限控制。


可以自定义一个权限注解,在注解上可以添加权限点。


在网关层有个拦截器,会根据当前请求的用户的权限,去跟请求的接口的权限做匹配,只有匹配上次允许访问该接口。


4. IP 白名单


对于有些非常重要的基础性的接口,比如:会员系统的开通会员接口,业务系统可能会调用该接口开通会员。


会员系统为了安全性考虑,在设计开通会员接口的时候,可能会加一个ip白名单,对非法的服务器请求进行拦截。


这个 I P 白名单前期可以做成一个 Apollo 配置,可以动态生效。


如果后期 I P 数量多了的话,可以直接保存到数据库。







请到「今天看啥」查看全文