双因素身份验证过程应该在哪里?
Where should the two-factor authentication process be?
我想知道我是否应该在客户端或后端处理双因素身份验证?
例如,我在客户端请求短信,如果用户输入正确的代码,则请求后端进行注册。
或者使用后端处理它并在后端请求短信并检查代码是否正确。
我认为后端更安全,但我不确定。
后端的简短回答。始终,始终在后端处理身份验证。
如果您在客户端处理身份验证,那么您将面临 client-side 旁路攻击。这对于 MFA 和简单(用户名/密码)身份验证都是如此。客户端必须始终将用户输入(在本例中为来自 SMS 的代码)传递到后端以进行验证。
Insecure Authentication 附近的 OWASP 站点上有很多关于此的重要信息。
我想知道我是否应该在客户端或后端处理双因素身份验证?
例如,我在客户端请求短信,如果用户输入正确的代码,则请求后端进行注册。 或者使用后端处理它并在后端请求短信并检查代码是否正确。
我认为后端更安全,但我不确定。
后端的简短回答。始终,始终在后端处理身份验证。
如果您在客户端处理身份验证,那么您将面临 client-side 旁路攻击。这对于 MFA 和简单(用户名/密码)身份验证都是如此。客户端必须始终将用户输入(在本例中为来自 SMS 的代码)传递到后端以进行验证。
Insecure Authentication 附近的 OWASP 站点上有很多关于此的重要信息。