如何加密API保证只有自己的手机app才能调用?

发布于 2022-09-06 08:47:16 字数 112 浏览 31 评论 0

公司不想公开API。根据Log日志显示和其他迹象,总是会有异常的调用,比如短信轰炸机试图调用注册接口发送注册短信、大量的异地手机短时间内批量注册用户等,虽然各自可以有不同的应对方式,但加密Api才是一劳永逸的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

假扮的天使 2022-09-13 08:47:16

对传输的数据进行非对称加密算法(RSA)。
app请求后端时,对post提交的数据采用json形式,对这个json字符串进行加密。
后端接收时,用密钥进行解密。
后台给前台返回数据亦是如此。
网上这方面文章很多,关键词如“接口加密”

当然还需要做一些,鉴权,时间检验等

小帐篷 2022-09-13 08:47:16

如果是完全私有的接口,其实还有这样一些可选的策略
对于调用路径都是加密的,比如你只提供一个公开的路径,接受通过某种非对称加密的字符串密文作为调用,原始路径(非加密路径 只有你的app和服务器端知道——其实这里所谓的调用路径不一定是路径表示,只是为了方便调试功能),这样在这个统一接口中处理判断是否进行正确调用(后台实际处理),对于不规范的(通过一些标识、校验等等),可以方便的过滤掉。这样的一层其实相当于在服务器端和app端(调用接口时)都再添加了一层包装。

而那些公开api只所以用token来判断是否有权限,是因为他们必须要公开调用路径,而你并没有这样的要求,所以可以采用不同的策略了。

情定在深秋 2022-09-13 08:47:16

目前我自己的加密方式是设定一个token,服务器和手机端分别保存,,然后手机端hash=md5(token.time)之后把hash和time上传到服务器进行比对。
但是这样测试接口时比较麻烦,不知还有没有更好的方式?
另外我看关于openAPI的文章,好像都直接传token,连加密都没有,不知是不是安全。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文