77yf77yf77yf
V2EX  ›  Java

有没有办法防止通过发送邮件验证码的接口乱发邮件

  •  
  •   77yf77yf77yf · Dec 2, 2021 · 3366 views
    This topic created in 1802 days ago, the information mentioned may be changed or developed.
    想来想去只想到通过限制 ip 访问接口次数,但是如果只限制 ip 的话开代理照样可以绕过,各位有什么好点的解决方案
    iBugOne
    iBugOne
    Dec 2, 2021 via Android
    1
    IP 和邮箱地址一起限速不就行了?每个邮箱 5 分钟只能发 3 个验证码之类的
    77yf77yf77yf
    77yf77yf77yf
    OP
    Dec 2, 2021
    2
    @iBugOne 我设想的场景是每次都是不同的邮箱然后每次 ip 也不同
    iBugOne
    iBugOne
    Dec 2, 2021 via Android
    3
    @77yf77yf77yf #2 那完全无解啊,你怎么区分有人乱发和单纯的用户使用高峰?
    Overfill3641
    Overfill3641
    Dec 2, 2021❤️1
    4
    验证码是对应账户吧,限制账户呗。
    新注册的话可以反过来:让用户发邮件到你。
    77yf77yf77yf
    77yf77yf77yf
    OP
    Dec 2, 2021
    5
    @v2tudnew 考虑的就是注册的情况,感觉让用户反向发邮件确实比较可行
    ke1e
    ke1e
    Dec 2, 2021 via iPhone
    6
    验证码呀 只要你验证码够 nb 就不会被刷接口
    laozhoubuluo
    laozhoubuluo
    Dec 3, 2021 via Android❤️1
    7
    @77yf77yf77yf 反向发的话,考虑的因素不少,如果只判断 from 字段的话会出安全问题。
    感觉比较靠谱的是先反向发邮件,完了服务器收到反向邮件之后进下一步再正向发邮件,虽说无法保证绝对的不被滥用,但是也能很好的控制。
    dven
    dven
    Dec 3, 2021
    8
    把 Rate Limit 绑定到邮箱而不是 IP 上
    holinhot
    holinhot
    Dec 3, 2021
    9
    @laozhoubuluo 用户体验为 0
    holinhot
    holinhot
    Dec 3, 2021
    10
    还不如发邮件加个风控验证码
    laozhoubuluo
    laozhoubuluo
    Dec 3, 2021 via Android
    11
    @dven 他的意思是邮箱和密码同时不同。
    laozhoubuluo
    laozhoubuluo
    Dec 3, 2021 via Android
    12
    @dven 抱歉,应该是邮箱和 IP ,写错了。

    @holinhot 加验证码确实是个常规思路,不过层主没提出来。至于体验问题那就没办法了,毕竟楼主接受不了风险。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4506 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:20 · PVG 16:20 · LAX 00:20 · JFK 03:20
    ♥ Do have faith in what you're doing.