我有一个注册门户,用户在其中输入他的详细信息,然后输入一个有效的电子邮件帐户。
目前我检查该电子邮件是否尚未使用,如果是,我会回复经典:“电子邮件已在使用”以及“恢复您的旧密码或使用新电子邮件创建新帐户”之类的内容。
考虑到我正在泄露我插入的电子邮件地址实际可用的信息,我想知道这种行为有多安全。
我怎样才能让它更安全?目前我只能想到防止对可用地址进行暴力检查,但问题仍然存在。
我有一个注册门户,用户在其中输入他的详细信息,然后输入一个有效的电子邮件帐户。
目前我检查该电子邮件是否尚未使用,如果是,我会回复经典:“电子邮件已在使用”以及“恢复您的旧密码或使用新电子邮件创建新帐户”之类的内容。
考虑到我正在泄露我插入的电子邮件地址实际可用的信息,我想知道这种行为有多安全。
我怎样才能让它更安全?目前我只能想到防止对可用地址进行暴力检查,但问题仍然存在。
击败此类攻击的最简单方法是使用通知电子邮件而不是错误消息。当有人尝试使用电子邮件地址创建帐户时,回复“感谢您注册,已向此帐户发送一封电子邮件以进行确认”。从那时起有2种情况:
该系统的好处是攻击者不知道该电子邮件是否已在帐户中使用,如果有人试图以他们的名义创建帐户,用户会收到通知,如果有人正在尝试,您会收到通知发现帐户信息。
您所指的攻击称为枚举,攻击者可以通过在您的服务中尝试随机电子邮件来确定有效电子邮件的列表。
我认为由于其他答案的评论中产生的原因:攻击可以通过不断尝试注册为目标来生成针对目标的垃圾邮件;或者您浪费大量时间填写注册表,只是为了提醒您您已经是会员。
我觉得这里的平衡不是假装用户成功注册,而是实施速率限制,所以是的,攻击可以枚举电子邮件地址,但他们可能只有 5 次尝试这样做,在保持可用性的同时使其毫无价值为客户。