后端MD5加密,key存放问题,后端验证,前端传递cookie 的一个安全问题。

新手上路,请多包涵

前端请求后端API 会带cookie ,

我目前的做法是前端传cookie 里面有一堆参数,然后一个hash值,

一堆参数和服务器的一个key加密MessageDigest,最后得出值与hash是否相同,就代表成功和失败。

现在关键就是这个key,这个key 感觉就是关键呀,我是写在app.xml里面的,感觉好不保险哦,好担心被人偷了哈哈。请问大神们咋办?你们都咋做的呀?

阅读 3.5k
5 个回答

key你要动态生成呀,一个用户一个key。
另外你这个hash值只是为了防止数据在传输过程中被篡改,另外MD5是哈希不是加密。

你要先搞清楚你设置这个hash的目的,然后才能说下一步。

如果会被偷,放哪都是会被偷。

如果是全局的key:可以定时生成一个随机的,比如1小时生成一个新的key,验证时用前一小时和当前这个小时的key对数据进行验证,只要有一个合法就是有效的请求。

或者:人工定时改代码,一礼拜换一个key,自己安慰自己吧

你这个应该来说叫「签名」。

在将 cookie 发送到浏览器之前,获取所有 cookie 信息并签名,然后将签名加入 cookie 中, 客户端请求时验证签名。
整个签名过程是在服务器完成的,也就是说,这个是相对安全的,可以防止客户端篡改 cookie 。

至于上面说的 自动更改,这个你要考虑一个情况就是 cookie 在大多数情况下使用,我们就是为了让他保持登录,而自动变更 key 之后,就会导致之前的 cookie 验证失败,这个就要参考 JWT 的设计。

在理想情况下,防止攻击都是防止第三者,如果是用户自主发起的,不太容易分辨,反之还容易误伤。

jwt了解一下。

API还想绝对安全?公开请求的API我还没见过不能盗取的。
别想着什么加密验证了,服务器弄请求规则就行,你防的不应该是资源获取,而是恶意攻击。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题