【发布时间】:2021-10-20 23:12:27
【问题描述】:
我有不同的 REST-API 视图,我可以在其中发送邮件(如果存在帐户)或不发送邮件。 例如,用户可以在忘记密码的表单中输入电子邮件,如果帐户存在则发送邮件。
我正在使用from django.core.mail import send_mail 发送邮件。
问题是,这需要一些时间,因此对有效电子邮件的请求通常比对非退出电子邮件的请求要长。 这允许攻击者比较请求时间以找出帐户是否存在。
有什么方法可以在不发送邮件的情况下拨打send_mail() 吗?
或者如何解决这两种情况的请求时间相同?
注意:如果我不发送邮件,我可以检查 send_mail() 平均需要多长时间,然后等待这个时间。由于该应用程序在具有不同配置的不同服务器上运行,因此在我的情况下通常无法做到这一点。我宁愿不将每台服务器的平均执行时间存储在数据库中来解决这个问题。
【问题讨论】:
标签: django django-rest-framework timing-attack