XPoet / picx

🏞️ PicX 是一款基于 GitHub API 开发的图床工具,提供图片上传托管、生成图片链接和常用图片工具箱服务。

Home Page:https://picx.xpoet.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Token窃取

WangQuan-cn opened this issue · comments

目前token是在localstorage中明文存储的,这样我获取到之后,可以将其投入到picgo中,直接增删改仓库内容。
这是否属于重大安全隐患?

可以使用非对称加密处理一下敏感信息
废弃当前所有的可能已泄露的token,并从localstorage中删除敏感信息
可能还需要发一个公告说明😥
如无法访问图片,可以用一个占位图片来通知上传者,让其重新生成token

1、你的 GitHub Token 本身就是由你自行创建,先撇开跟 PicX 之间的关系,你可以拿 Token 做任何事情。
2、在 PicX 中,你的 GitHub Token 只会存储在你自己的本地,PicX 不会上传到其他任何第三方服务器上,无外泄风险。
3、PicX 的图床服务的 HTTP 请求中必须明文携带 Token。
4、就是加密存储 Token,也只能是一些简单的加密,通过工具一样可以快速解密,无实际意义,反而增加心智负担。
5、GitHub Token 本身就是由用户自行创建、自行保存,PicX 不具备托管 Token 的功能,未来也不会去做。
6、你所创建的 GitHub Token,你可以用来做任何能做的事,你的 Token 的时效性、可操作权限、主动权等完全在你自己手上,如果你拿来滥用,所造成的后果也由你承担。
7、PicX 不具备托管 GitHub Token 的功能,未来也不会去做。
8、再次重申:你的 GitHub Token 本身就是由你自行创建,撇开跟 PicX 之间的关系,你可以拿 Token 做任何事情。

PicX 对 GitHub Token 没有本质上的关联,你的 GitHub Token 不是 PicX 帮你创建的,是你自己创建的,PicX 怎么可能来给你废弃掉之前的 Token ???请仔细理清他们之间的关系。

  1. 在任何情况下,都应当认为浏览器端(前端)是不安全的,不应当存储明文敏感数据。
  2. 应当假定存在所谓破坏性的用户,以破坏系统为目的进行边界操作
  3. 参考了Eclipse对于Sonar的Token存储逻辑:即使是之前保存过的Token,也不允许用户再次查看
  4. 废弃Token是在Gitlab端进行的操作,使用端只是发出通知,说“Gitlab授权给我的写权限Token存在被窃取的风险”,至于用户要不要自己去Gitlab操作、什么时候操作,当然是使用端不可控的了,而这也是有前序厂商经验的行为(写权限token、私钥泄露)
  5. 前端公钥加密,后端私钥解密,就可以简单而快速地解决Token暴露的问题
    分歧点似乎在于:用户使用第三方服务的时候,要对自己Token的安全性承担多大的责任。
    我的看法是,网站本身能在投入产出比可接受的情况下,多做一点是一点。
    当然,最终是否要做,以及如何做,还是楼主来决策吧~~ ❤️