发布API接口后,会出现被恶意调用的情况,占用过多的服务资源。导致合法的请求,响应结果延时,客户体验不好。而给接口设置加密可以提高非法调用的成本。
java如何给接口设置加密
整体设计
后商增加过滤器阻拦配置的接口API。综合Header的属性值,按肯定规则加密某些值,若其值与前台提交来的sign值一致,则为合法请求,否则返回非请求错误。
java如何给接口设置加密
SpringMvc增加阻拦器代码接口的Header的值能否满足要求,从一致性及值考虑;
Header的时间值能否超过1分钟,否则合法,是则接口有屡次请求情况;
sha-1按规则加密其header的属性值,若与sign一致,则合法,否则非法请求;
java如何给接口设置加密
设置需要加密的接口
继承WebMvcConfigurer父类,增加阻拦器,并配置需要加密的接口
java如何给接口设置加密
排除不需要加密的接口
加密的接口API若通过正则判断,则有些特殊的接口需要排除,不需要登陆之后权限也可以查看
java如何给接口设置加密
前台增加SHA-1模块
下载crypto-js模块,通用import、required等引用,其下载地址为code.google.com/p/crypto-js
java如何给接口设置加密
前台接口封装
封装请求API的接口,增加header属性值token、timestamp、sign
java如何给接口设置加密
总结前台通过Header提交属性值,表明其为合法的请求;
后台增加阻拦器,获取Header的属性值,判断能否合法请求;
注意事项SHA-1的加密规则,需要重新设计符合项目的需求