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

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

wanghan
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 19
Epona

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

4年前 评论
黑将军

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

4年前 评论
aodaobi

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

4年前 评论

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

4年前 评论
wanghan (楼主) 4年前
畅畅 (作者) 4年前
Atzcl 4年前
畅畅 (作者) 4年前

参考下

file

4年前 评论
wanghan (楼主) 4年前

https?

4年前 评论
wanghan (楼主) 4年前
萧晔离 4年前
loveinalife 4年前
道法自然 4年前

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

4年前 评论
wanghan (楼主) 4年前

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

4年前 评论

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

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

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

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

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

4年前 评论

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

不过上 https 是必须的

4年前 评论

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

4年前 评论
ibucoin

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

4年前 评论
AloneUtopia

https
签名

4年前 评论

1.token黑名单
2.https

4年前 评论
wanghan (楼主) 4年前
sunrise丶 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!