Skip to content

更新前后端密码传递方式 #75

@Chenrt-ggx

Description

@Chenrt-ggx

目前,symphony 在前端计算密码的 MD5 后发送到后端进行登录,可能存在以下问题:

  • MD5 本身的安全问题。
  • 在后端进行比较时,可能存在定时攻击问题。

相关代码如下:

final String userPassword = user.optString(User.USER_PASSWORD);
if (userPassword.equals(requestJSONObject.optString(User.USER_PASSWORD))) {
    // ......
}

建议修改前后端密码传递方式,以下过程供参考,也可以参考 SpringSecurity 中的处理:

  • 前端通过静态资源或 API 获得 RSA 公钥。
  • 前端将用户的密码使用 RSA 公钥加密后发给后端。
  • 后端使用 RSA 私钥解密获得明文密码。
  • 后端对明文密码进行安全 Hash。
  • 后端 Constant Time 比对计算结果和数据库中的密码。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions