authentication - 如何处理我网站中的社交登录流程 - 有问题的流程和最佳实践
问题描述
所以我读了很多关于网络社交登录的内容。有问题的流程是:
1) 用户使用常规电子邮件注册
2) 用户使用社交(Facebook、Google 等)登录我应该怎么做?
如果社交电子邮件与其原始电子邮件不同,那没关系,对我来说这是一个不同的帐户。但是,如果电子邮件是相同的,我的行为就像是同一个用户。
问题是以下场景:
1) 使用常规电子邮件的用户注册
2) 攻击者使用用户电子邮件注册 Social(没有电子邮件验证)
3) 攻击者可以作为用户登录我的系统。
所以这里的问题是,是否有允许社交登录到其他网站的主要社交网站(facebook、google、...),而无需验证用户的电子邮件?
你怎么看?谢谢!
解决方案
大多数网站实际上只是将社交雪花值映射到用户 ID。例如,流程将是这样的:
如果用户使用电子邮件注册,这是流程
- 用户使用常规电子邮件注册
- 用户现在可以将他们的社交链接到常规帐户以使用社交登录(电子邮件不必匹配)
- 利润
如果用户使用社交网站注册,则流程如下
- 用户注册社交
- 使用社交来自动填充普通帐户字段
- 询问所需的任何其他字段(如果您需要社交登录,请将密码留空)
- 将社交雪花价值链接到现有帐户。
如果您需要任何澄清,但我已尽力解释:)
据我所知,对于您提到的有问题的流程,当前被认为是“安全”的提供商将是 Google 和 Microsoft(包括 Azure AD)。
推荐阅读
- mongodb - 有什么方法可以与 Pyspark 一起使用来将 MongoDB 集合作为 RDD 而不是作为数据帧读取?
- excel - 将数据与多个选项匹配并每次提取最高值的公式
- java - 线程“主”java.lang.NoSuchMethodError 中的异常:org.openqa.selenium.os.CommandLine.find(Ljava/lang/String;)Ljava/lang/String;
- java - JAVA outputStream 什么都不写(outputStream.close 没有帮助)
- r - Rstudio提取子数据库
- c - 无法访问主循环,因为 ADC DMA 中断调用 STM32F072CBT6
- vba - 在大型项目中使用接口时出现错误
- python - 检查数据框中是否有未命名的列,然后在 Pandas 中返回指示
- python - 无法理解代码中的特定行
- php - 使用 PHP 与 SAPRFC 连接