不用做 sign 吗?

数据不用做签名验证吗?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 10
liyu001989

你问的是哪头做签名,问题可以提的完整一些,谁签名,谁验证,做签名为了防止什么?不做会有什么问题?

5年前 评论

@liyu001989 api接口接口,要是被抓包,就可以篡改其中的参数了

5年前 评论
liyu001989

@jake_zou

  1. 这是给客户端的接口,做签名没有意义;
  2. 你家接口不用 https 的吗?
5年前 评论

@liyu001989 其实https也可以抓包 :dizzy_face:
目前是客户端对整体参数做了一个签名,服务端去验证签名,签名不对直接抛错
我在论坛上只看到有一个包是 laravel-api-auth ,但是不太喜欢他的实现

5年前 评论
liyu001989

@jake_zou

  1. https 传输过程中可被抓包? 求你看看什么是 https,请你把抓包方式分享出来让大家学习一下。
  2. 再重申一下,客户端做签名没有任何意义。

你觉得你的理论和观点特别正确,可以发帖详细说明一下,可以让大家讨论一下

5年前 评论
leo

@liyu001989 中间人攻击确实可以抓到 https 的包,只要攻击者在自己的设备里信任抓包服务器的签名根证书即可。

@jake_zou 如果接口因为用户自行修改了提交的参数,即用户提交了不合法的值而导致接口崩溃或者逻辑不正确,那问题在于接口本身的逻辑实现而非有没有对参数做签名。即使做了签名,攻击者也可以很容易找到签名的方法和参数。

5年前 评论
liyu001989

@leo

我没表达清楚,他的观点是 “要是被抓包,就可以篡改其中的参数了”

想要抓包,得你的设备自身先信任了某个证书,这样中间人才能参与进来。作为一个正常的用户,网络传输过程中无法抓包,无法篡改

5年前 评论

@liyu001989
@leo
确实可以抓包的,用这个

file

而且我亲手抓了很多知名平台的https的包,需要在手机端额外安装一个证书。

篡改参数和接口后台逻辑是两回事,譬如将A商品加入购物车,只要抓到这个包就可以修改成加任意商品加入购物车,只要拿到商品的id,我只是随便举个例子

5年前 评论
liyu001989

@jake_zou

你的逻辑是
抓包工具可以抓取 https 数据=》https 数据可以被篡改=》https 并不安全可被中间人攻击=》所以客户端与接口的通信必须增加签名?

我觉得我还是发个帖子吧,我们来讨论一下

5年前 评论

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