请求登录接口后接口返回秘钥存储在cookie里安全么,如果cookie里面的秘钥被获取不是就可以随意调用接口了
认证0级讲师
你说的是移动APP么?这个一般不用session啊,登陆的时候是返回一个token值,app端使用这个token来作为其他接口的身份验证。这个token 可以前段后台约定一种加密校验方式。
如果考虑到安全问题:
别人首先要知道你的token值什么时候返回的,这就要抓包了。那么后端接口url可以考虑使用 https ,这样即使别人抓包也抓不出啥。
其次, 你返回的 token ,可以返回一个使用 RSA 私钥加密的 token ,app端保存公钥解密token,其后的token ,或者一些其他敏感参数,都可以用 RSA 加密。 别人没有你的公钥是无法加解密的。
假设别人反编译你的app,找到你存放到代码理的token了,那么你还可以 额外传递一个参数 st 校验,这里说一种简单的: 把你所有的参数全部 按字母表的顺序排列,转码,md5,得到一个值,传递过去。后台接受你的参数后做同样的事来对比 st 的值,不一致则认为被修改,后台返回非法参数提示。
你还可以设置 一个app一个公钥(所谓的一机一密) , 后台可以不定时的更新app端的公钥 。 这样即使 你的校验规则、RSA公钥别人都知道了,,那么别人只能对这一台手机上的app做手脚,最大程度降低损失。
——————————————
没注意到你说的是javascript , 不过javascript也可以这么实现吧。
你可以假想为token包含你的登录信息,IP地址,登录时间等等一系列的修片,而且它有自己的时效,过了就不能用了~所以还是很安全的
可以参考微信小程序的登录接口https://mp.weixin.qq.com/debu...
你说的是移动APP么?这个一般不用session啊,登陆的时候是返回一个token值,app端使用这个token来作为其他接口的身份验证。这个token 可以前段后台约定一种加密校验方式。
如果考虑到安全问题:
别人首先要知道你的token值什么时候返回的,这就要抓包了。那么后端接口url可以考虑使用 https ,这样即使别人抓包也抓不出啥。
其次, 你返回的 token ,可以返回一个使用 RSA 私钥加密的 token ,app端保存公钥解密token,其后的token ,或者一些其他敏感参数,都可以用 RSA 加密。 别人没有你的公钥是无法加解密的。
假设别人反编译你的app,找到你存放到代码理的token了,那么你还可以 额外传递一个参数 st 校验,这里说一种简单的: 把你所有的参数全部 按字母表的顺序排列,转码,md5,得到一个值,传递过去。后台接受你的参数后做同样的事来对比 st 的值,不一致则认为被修改,后台返回非法参数提示。
你还可以设置 一个app一个公钥(所谓的一机一密) , 后台可以不定时的更新app端的公钥 。 这样即使 你的校验规则、RSA公钥别人都知道了,,那么别人只能对这一台手机上的app做手脚,最大程度降低损失。
——————————————
没注意到你说的是javascript , 不过javascript也可以这么实现吧。
你可以假想为token包含你的登录信息,IP地址,登录时间等等一系列的修片,而且它有自己的时效,过了就不能用了~所以还是很安全的
可以参考微信小程序的登录接口
https://mp.weixin.qq.com/debu...