有拉萨做技术的朋友问我:接口都能调通了,还需要管安全吗?我的答案是:能跑不等于安全,接口是数据的出口,出了事比网站被黑更严重。接口安全,三板斧先抡上。
接口安全三板斧
能跑不等于安全。第一防重放,同一个请求别能被反复用;第二防越权,A 用户不能看 B 用户的数据;第三防泄密,敏感信息加密传。
拉萨企业做接口,把这三条做成基本配置。接口是数据的门,门没锁好,再好的系统也白搭。安全做在前面,比事后补救便宜得多。
接口这层东西,用户看不见,但系统好不好用全靠它。接得稳、文档全、有安全防护,后面才省心。
拉萨企业做系统打通,别只求能调通。把鉴权、限流、异常处理一并做了,不然上线后问题一个接一个。
接口这层东西,用户看不见,但系统好不好用全靠它。接得稳、文档全、有安全防护,后面才省心。
拉萨企业做系统打通,别只求能调通。把鉴权、限流、异常处理一并做了,不然上线后问题一个接一个。
接口这层东西,用户看不见,但系统好不好用全靠它。接得稳、文档全、有安全防护,后面才省心。
第一斧:防重放
同一笔请求被复制、反复发送,就是重放攻击。加时间戳和随机数,让过期和重复的请求直接失效。支付类接口尤其要注意。
第二斧:防越权
用户A能查到用户B的数据,就是越权。每个接口都要校验,调用的人有没有权限拿这笔数据。这是最常见的接口漏洞。
- 每次请求都校验身份和数据归属
- 权限最小化,能少给就少给
- 敏感操作二次校验
第三斧:防泄密
数据在传输和日志里裸奔,最危险。传输用https,日志里的手机号、身份证要脱敏。别把密钥和敏感数据写进日志。
接口安全的常见疑问
接口要单独做安全吗?
要,接口安全是整体安全的一部分,重放、越权、泄密都得防。
怎么发现越权漏洞?
做权限测试,用低权限账号尝试访问高权限数据,测出来就补。
日志能记录请求内容吗?
可以记,但敏感字段必须脱敏,密钥和密码绝不能进日志。
三板斧抡起来
拉萨企业做接口,防重放、防越权、防泄密三样都得做到。安全做扎实,接口才算真完成。你要在拉萨,担心接口安全,找信服无限拉萨团队帮你做次检查。