V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
77yf77yf77yf
V2EX  ›  Java

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

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

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