其它

1. java提供接口服务, 安全怎么保证

1. 请求合法性校验,考虑采用token方式保证接口不被其他人访问

2. 数据校验,白名单方式验证数据确保不出现异常数据和注入攻击。

3. 数据加密,对数据进行加密保证其他人无法非法监听或截取。

4. 错误处理,对系统返回结果编制返回码,避免堆栈信息泄露。

5. 接口阈值,对接口访问频率设置阈值,超出设定的访问频率时返回错误码 (访问频率测试可以直接在nginx设置,也可以用redis计数器、写缓存计数的方式代码实现)。

个人实际经验:

1 用户id或第三方tokenId校验,

2 . 请求接口url权限校验(请求的url地址是否在用户有权限的url地址列表(可以存redis)中是否存在),

3、 参数校验(非空, 日期格式,ip格式, 数字极值校验, 枚举校验等)

4. 接口使用做幂等校验(例如: 使用redis对  接口的类名+ 方法名+ 参数 作为唯一值存入redis中, 并设置过期时间为三秒, 如果重redis中查询出来存在则表示重复点击了提交按钮)

5. 多部署几台服务,nginx做负载, 减小服务器压力

6. 使用redis缓存数据, 减小数据库压力

7. 对一些特殊字符做过滤替换, 前端传参时先encoding, 后端decoding, 然后特殊字符替换.

posted @ 2023-09-07 16:42  剑阁丶神灯  阅读(5)  评论(0编辑  收藏  举报