twikoojs / twikoo

💬 一个简洁、安全、免费的静态网站评论系统 | A simple, safe, free comment system.
http://twikoo.js.org
MIT License
1.4k stars 263 forks source link

[feat]建议对HIDE_ADMIN_CRYPT字段进行加密 [enhancement] [safe] #637

Open LanYunDev opened 6 months ago

LanYunDev commented 6 months ago

数据库中存储 明文暗号 ,但传递给前端始终是加密后的暗号,前端通过加密验证暗号是否正确.

前端: 收到加密暗号,例如通过MD算法、SHA算法等算法,将前端明文输入的暗号进行匹配.如果匹配成功再显示管理按钮.用户点击管理按钮,加载密码框GET_PASSWORD_STATUS请求附带上明文暗号,如果后端验证有误,则提示报错并取消显示管理按钮.

即: 明文暗号 -> 得到密文,但通过密文无法得到明文暗号,请求验证的是明文暗号.

后端: 发送加密后的暗号,收到前端传来的明文暗号进行匹配,如果不一致则返回报错(并拉黑此ip xx分钟或者限制此ip评论 xx分钟)

注意到有人将暗号当密码用,故此提出此issue,希望能提高安全性(可防止前端直接得到明文暗号,防爆破等),并限制恶意访问.

lilac-milena commented 2 months ago

我个人感觉意义不大,因为“暗号”这个功能存在的意义是在前端隐藏多余的按钮来让前端更简洁一点,你说得这个思路完全是把它当作一种鉴权的手段了。 文中还提到了 “有人将暗号当密码用”,这个是用户的问题,而不是程序设计的问题。