正文
但有个问题是:如果图形验证码太复杂了,会对正常用户使用造成一点的困扰,增加了用户注册的成本,让用户注册功能的效果会大打折扣。
因此,仅靠图形验证码,防止用户注册接口被刷,难道太大了。
后来,又出现了一种移动滑块形式的图形验证方式,安全性更高。
此外,使用验证码比较多的地方是发手机短信的功能。
发手机短信的功能,一般是购买的云服务厂商的短信服务,按次收费,比如:发一条短信 0.1 元。
如果发送短信的接口,不做限制,被用户恶意调用,可能会产生非常昂贵的费用。
3、鉴权
对于有些查看对外的API接口,需要用户登录之后,才能访问。
这种情况就需要校验登录了。
可以从当前用户上下文中获取用户信息,校验用户是否登录。
如果用户登录了,当前用户上下文中该用户的信息不为空。
否则,如果用户没登录,则当前用户上下文中该用户的信息为空。
对于有些重要的接口,比如订单审核接口,只有拥有订单审核权限的运营账号,才有权限访问该接口。
我们需要对该接口做功能权限控制。
可以自定义一个权限注解,在注解上可以添加权限点。
在网关层有个拦截器,会根据当前请求的用户的权限,去跟请求的接口的权限做匹配,只有匹配上次允许访问该接口。
4. IP 白名单
对于有些非常重要的基础性的接口,比如:会员系统的开通会员接口,业务系统可能会调用该接口开通会员。
会员系统为了安全性考虑,在设计开通会员接口的时候,可能会加一个ip白名单,对非法的服务器请求进行拦截。
这个
I
P
白名单前期可以做成一个 Apollo 配置,可以动态生效。
如果后期
I
P
数量多了的话,可以直接保存到数据库。