如何确保API接口安全呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何确保API接口安全呢?相关的知识,希望对你有一定的参考价值。

参考技术A 目前大量互联网公司和传统软件公司都在项目上大量采用前后端分离,这也是体现 社会 化分工更加明晰,Web端、App端和小程序 都涉及调用后端接口,传输的时候如何防止被抓包、偷窥、伪造、超时、重放。

token授权认证:防止未授权用户获取数据、时间戳:防止超时重放、签名:防止数据篡改
HTTPS:防止数据明文传输

如果时间差大于一定时间(比如:1分钟),则认为该请求失效,防止超时重放

比如queryString、header、body,将它们按顺序拼接成一个字符串,然后使用秘钥签名,防止数据被篡改。如果传输不敏感信息,仅仅为了防篡改,可以使用签名;

每次HTTP请求,都需要加上timestamp参数,然后把timestamp和其他参数一起进行数字签名。因为一次正常的HTTP请求,从发出到达服务器一般都不会超过60s,所以服务器收到HTTP请求之后,首先判断时间戳参数与当前时间相比较,是否超过了60s,如果超过了则认为是非法的请求。

每次请求生成一个唯一流水号,存放到缓存中,如果下次再使用相同的流水号请求就拒绝,防重放

HTTP协议是以明文方式发送内容,因此不适合传输一些敏感信息
HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为客户端和服务器之间的通信加密

APP比较特殊,攻击者可以反编译源码,所以不可以在APP中存放秘钥,曾经见过有公司APP使用OAuth的Client Credential授权方式,将ClientID和ClientSecret存放在APP端,app启动时获取Token,肯定不安全应该使用APP使用者的用户名密码登录获取Token,配合使用签名、时间戳、流水号、HTTPS

GBase 8c数据库使用过程中,如何确保数据安全呢?

使用过程中,如何确保数据安全呢?有什么好的建议呢?

参考技术A 为保证GBase 8c数据库中的数据安全,避免丢失数据,非法访问数据等事故发生,建议:
1)规划周期性的物理备份,且对备份文件进行可靠的保存,避免数据被丢失。在系统发生严重错误的情况下,可以利用备份文件,将系统恢复到备份前的状态;
2)数据库管理员根据业务需要,建立用户并赋予权限,对权限分级管理,保证各用户对数据库的合理访问;
3)将调试日志、系统日志发给他人进行分析前,需删除个人数据。除此之外,将log_min_error_statement参数的值设置为PANIC,可以避免将出错的SQL语句记录在系统日志中。若禁用该功能,当出现故障时,很难定位故障原因。

以上是关于如何确保API接口安全呢?的主要内容,如果未能解决你的问题,请参考以下文章

Java基础学习总结(180)——如何保证API接口安全

Java基础学习总结(180)——如何保证API接口安全

如何设计一个安全可靠的API接口

如何设计一个安全可靠的API接口

如何设计一个安全可靠的API接口

如何设计一个安全可靠的API接口