• 09-11-2021, 18:14:59
    #1
    Bir müşterimin sitesi form saldırısı alıyormuş. Sayfada form ile mail gönderiliyor. Saldırı olduğunda saniyede 50-100 mail geliyormuş. Captcha ya da doğrulama kodu istemiyorlar. Ne gibi bir çözüm bulabiliriz?

    Edit: Cookie ile engellemeyi denedim fakat sonuç başarısız oldu.
  • 09-11-2021, 18:15:55
    #2
    Rawt adlı üyeden alıntı: mesajı görüntüle
    Bir müşterimin sitesi form saldırısı alıyormuş. Sayfada form ile mail gönderiliyor. Saldırı olduğunda saniyede 50-100 mail geliyormuş. Captcha ya da doğrulama kodu istemiyorlar. Ne gibi bir çözüm bulabiliriz?
    Hedef ülke dışından gelenler JS captcha, hedef ülkeden gelenler V3 captcha ile doğrulanabilir.
  • 09-11-2021, 18:20:29
    #3
    yalinyalniz adlı üyeden alıntı: mesajı görüntüle
    Hedef ülke dışından gelenler JS captcha, hedef ülkeden gelenler V3 captcha ile doğrulanabilir.
    Saldırı gelen IP'ler de Türkiye lokasyonlu olarak geliyor.
  • 09-11-2021, 18:22:26
    #4
    Rawt adlı üyeden alıntı: mesajı görüntüle
    Saldırı gelen IP'ler de Türkiye lokasyonlu olarak geliyor.
    gelen ip sabittir hocam onu engelleyin isterseniz en azından ip blogu sabittir
  • 09-11-2021, 18:23:28
    #5
    Rawt adlı üyeden alıntı: mesajı görüntüle
    Saldırı gelen IP'ler de Türkiye lokasyonlu olarak geliyor.
    Datacenter bloklardır, ev ve mobil internet sağlayıcı ASN'leri bellidir.
    ipwhois.io gibi IP sorgulama API'ları ile veya Cloudflare'in Firewall kısmından kural oluşturarak ev ve mobil internet ASN'leri dışındakileri V3 captchaya düşürebilirsiniz.
  • 09-11-2021, 18:32:57
    #6
    rastgele karakterler uniqid ile tanımlayıp o şekilde form action oluşturun.
    sonra form.php işleme sayfasında session ile kontrol edip bilgileri işleyebilirsiniz.
    her seferinde action değişeceği ve post öncesi kontrol edileceği için saldırı alsada sunucuya binen yük azaltılmış olur.

    //iletisim.php
    
    <?php
    session_start();
    $rand = uniqid();
    $_SESSION["kontrol"] = $rand;
    ?>
    <form action="form.php?sec=<?= $rand ?>">
    ...
    </form>
    
    //-------
    //form.php
    
    <?php
    session_start();
    if($_GET["sec"] == $_SESSION["kontrol"]) {
     //formu işle
    } else {
    exit();
    }