API 接口安全怎么可以保证?

公司开发了一个app,通过http请求laravel写的接口拿数据,可是在安卓上可以用一个
请求捕获工具拿到接口地址和传参,这样就很不安全,用户可以随意修改数据,我需要怎么做
才能让用户捕获不到地址和参数呢?

wanghan
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 20

https?

6天前 评论
wanghan (楼主) 6天前
萧晔离 6天前
loveinalife 6天前
假老练 5天前

1.token黑名单
2.https

6天前 评论
wanghan (楼主) 6天前
sunrise丶 6天前

...这是无解,你接口给出去 肯定会拿到呀,涉及到更新敏感接口这些肯定要有身份验证,最常用的就是jwt,至于资源类型的 看情况要验证和不验证

6天前 评论

可以学习微信的签名方法,将所有参数数据用 key => value 拼接起来,结尾接个 token,用md5加密后生成 sign 携带进来。
Api端拿到参数后去校验 sign 用同样的方法去拼接,看看生成的 sign 和 前端传来的 sign 是否一致即可

6天前 评论
wanghan (楼主) 6天前
畅畅 (作者) 5天前
Atzcl 5天前
畅畅 (作者) 4天前

数据加密咯 openssl

6天前 评论
ibucoin

https,使用acme.sh可以申请免费了,我好几项目用了。
之前有一个要求接口加密的,可以选择简单的base64或者md5做加密。

6天前 评论
Epona

仿微信加密算是一种方法,另外。。你们boss纯属扯淡了。。。只要是接口,肯定能被拿到的。新开发的小程序没必要加密的。。根本没人去抓😂

6天前 评论

@ibucoin base64只是种编码方式,而且 / + 还需要转换下

5天前 评论

对称/非对称加密就OK了。 这种一般用于和第三方接口对接,一般自己用的app-api,我都没有采用。

不过上 https 是必须的

5天前 评论

无解。
一定可以捕获到地址和参数。
可以使用 https ,但还是可以抓到,参考 Charles 。至于防修改,可以参考微信的加密方式,但是,我们可以通过反解 apkipk 文件来读懂然后模拟。
总之,道高一尺我高一丈。

5天前 评论

很多人提到各种加密、HTTPS,其实这两种方案都是无效的。

  • HTTPS 是为了防止中间人。数据在客户端和服务端之间是透明的。
  • 加密也是一样的道理。客户端总需要解密。

我们常说不要信任任何前端发来的数据。其实是类似的道理,你永远不知道用户在做什么。道高一尺魔高一丈,看看当年 Windows 平台、吾爱破解,只要发给客户端,没有什么是安全的。

4天前 评论
qufo 4天前
Wi1dcard (作者) 4天前
wanghan (楼主) 4天前
Wi1dcard (作者) 4天前
qufo 4天前
Wi1dcard (作者) 4天前
Wi1dcard (作者) 4天前

安全都是相对的,看公司可以为安全投入多大的成本了

4天前 评论

防止不了,只能增加破解成本。再牛逼的加密,依然会被破解,时间长短而已,做好基本验证就行了(token、session、转义什么的)。与其考虑怎么防止别人拿数据,不如做好缓存加限流比较好。起码服务器不会被人恶意刷爆 :stuck_out_tongue_winking_eye:

4天前 评论
wanghan (楼主) 4天前
勺颠颠

支付宝APP的接口我都能扫到参数和接口,想想吧你们项目是不是比支付宝大 :joy:

3天前 评论
黑将军

根据墨菲定律,道高一尺,魔高一丈,你的应用接口再安全,终究也会被破解的,破解成本高低而已

3天前 评论

参考下

file

3天前 评论
wanghan (楼主) 3天前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!