Open iceprosurface opened 4 years ago
从设计上,并不允许通过企业微信登录的用户设置密码,所以可以认为需要考虑密码的用户,仅限于不具备管理权限的外包。
把认证什么的交给腾讯实在是太方便了.jpg,如果腾讯做不好这个我是不信的
以及就算心动的企业微信被爆破也是人事小改改的锅(或者星星)
你都说了,那就要吧
反正硬盘核心出,开销行政付
其实无所谓,猜出来也是外包的号,企业微信授权账号根本不给密码
以及其实我想阻断企业微信导入的时候拿邮箱,反正有企业微信用户ID
发自我的iPhone
------------------ 原始邮件 ------------------ 发件人: iceprosurface <notifications@github.com> 发送时间: 2020年1月2日 15:04 收件人: TinkoLiu/xd-meal-backend <xd-meal-backend@noreply.github.com> 抄送: Subscribed <subscribed@noreply.github.com> 主题: 回复:[TinkoLiu/xd-meal-backend] 安全相关 (#3)
密码相关
⚠️:如果需要输出日志,禁止输出任何用户输入的密码字段 ⚠️:创建的密码限定长度为 8-21 个字符
为了保证安全(阻止彩虹表暴力猜解密码),我们这里使用 SHA + 32 位随机 salt 保证即使管理员也无法反向猜解出密码
为什么不用 bcrypt ?
bcrypt 相对 SHA 更麻烦一点,性能更差极端情况下(参数设置不合理)加密时间可能长达 80ms以上,node 本身对于这种 cpu 密集的运算能力就十分不友好(node v8 引擎无法在这里识别并在 JIT 优化,所以相比较 java/go 可以慢一个数量级)但是更安全,或许目前SHA已经足够安全?
为什么不添加额外的 configSalt 密码加 salt后 长度已经到达最少 40 位绝大多数的彩虹表并不会包含如此数量的密码
randomString 是否足够随机以保证安全?
randomString 的随机程度并不足够,因为依靠 math.random 这个函数本身随机性存在问题
而 crypto.getRandomBytes 同样有问题,他在高位数部分存在显著的偏移
考虑是否使用 SHA 做 CSPRNG 来创建一个 密码学安全的散列 salt ?
admin 操作日志相关
admin 操作是否需要使用 IP + 操作者 + 操作时间记录每一次操作?
用户暴力猜解密码
因为没有设置上线,所以目前是可以暴力猜解密码的
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
密码相关
⚠️:如果需要输出日志,禁止输出任何用户输入的密码字段 ⚠️:创建的密码限定长度为 8-21 个字符
为了保证安全(阻止彩虹表暴力猜解密码),我们这里使用 SHA + 32 位随机 salt 保证即使管理员也无法反向猜解出密码
为什么不用 bcrypt ?
bcrypt 相对 SHA 更麻烦一点,性能更差极端情况下(参数设置不合理)加密时间可能长达 80ms以上,node 本身对于这种 cpu 密集的运算能力就十分不友好(node v8 引擎无法在这里识别并在 JIT 优化,所以相比较 java/go 可以慢一个数量级)但是更安全,或许目前SHA已经足够安全?
为什么不添加额外的 configSalt 密码加 salt后 长度已经到达最少 40 位绝大多数的彩虹表并不会包含如此数量的密码
randomString 的随机程度并不足够,因为依靠 math.random 这个函数本身随机性存在问题
而 crypto.getRandomBytes 同样有问题,他在高位数部分存在显著的偏移
考虑是否使用 SHA 做 CSPRNG 来创建一个 密码学安全的散列 salt ?
admin 操作日志相关
admin 操作是否需要使用 IP + 操作者 + 操作时间记录每一次操作?
用户暴力猜解密码
因为没有设置上线,所以目前是可以暴力猜解密码的