Puncte:0

Cum pot opri Webform Spam-ul?

drapel ae

Primim spam dintr-un simplu formular web Contactați-ne. Rulem Drupal 7, folosind modulele Captcha și Honeypot. Provocarea Captcha este setată la imagine, iar limita de timp Honeypot este setată la 4 secunde și este activată pentru toate formularele web. Dar recent am început să primim spam cu o rată de 4 sau 5 postări pe minut, toate de la diferite adrese gmail sau ru. Deocamdată am anulat publicarea formularului web ofensator. Are cineva sfaturi despre ce altceva am putea incerca?

Puncte:2
drapel ph

Iată câteva lucruri de încercat

  • Setați numele elementului honeypot la altceva
  • Setați limitele de trimitere prin adresa IP pe formularul web
  • Setați limite de trimitere prin cookie pe formularul web
  • Încerca reCaptcha v3 dacă încă utilizați un stil Captcha mai vechi

Dezavantajul limitelor de trimitere este că persoanele de pe computere/rețele partajate ar putea fi blocate, iar dacă utilizați un cookie, atunci trebuie să vă ocupați de legislația privind cookie-urile.

Dezavantajul ReCaptcha este că îi lăsați pe Google să decidă cine sunt spammerii. Poate să nu fie un dezavantaj, în funcție de opiniile dvs. față de Google.

No Sssweat avatar
drapel ua
Încercați `reCaptcha v3` din experiența mea, nu funcționează bine. Am găsit că v2 este mai eficient (
sonfd avatar
drapel in
Un alt lucru pe care l-am folosit cu oarecare succes este [modulul Antibot](https://www.drupal.org/project/antibot). Deși necesită activarea javascript-ului.
berramou avatar
drapel gb
acest modul este de asemenea util https://www.drupal.org/project/webform_spam_words
Puncte:1
drapel in

Eu folosesc backend-ul lui https://www.stopforumspam.com/ împreună cu honeypot foarte reușit. Dar trebuie să verificați dacă valorile SFS se potrivesc cu profilul dvs. de risc de utilizator.

Nu sunt sigur dacă există un modul, dar iată codul meu dacă doriți să copiați și să vă jucați cu el...

  /**
   * @param $ip - ip sau ip[]
   * @param $nume - nume sau nume[]
   * @param $email - mailadr sau mailadr[]
   *
   * @return float|int - încrederea medie în spam a api.stopforumspam.org
   */
  funcție publică statică checkStopForumSpam($ip, $nume, $email) {
    $client = Drupal::getContainer()->get('http_client');
    $endpoint = 'https://api.stopforumspam.org/api';
    $nume = $mails = [];
    dacă (este_matrice($nume)) {
      foreach ($nume ca $n) $nume[] = urlencode($n);
    } altfel {
      $nume[] = urlencode($nume);
    }
    dacă (este_matrice($email)) {
      foreach ($email ca $n) $mails[] = md5($n);
    } altfel {
      $mails[] = md5($email);
    }
    $postdate = [
      'form_params' => [
        'username' => $nume,
        'emailhash' => $mails,
        'ip' => $ip,
        "badtorexit",
        "json",
        "unix"
      ],
      'headers' => [
        „Accept” => „aplicație/json”,
      ]
    ];
    încerca {
      $răspuns = $client->post($endpoint, $postdate);
      $response_data = json_decode((string) $response->getBody(), TRUE);
    } captură (\Excepție $e) {
      $response_data = [];
      $response_data['succes'] = 0;
      Drupal::logger('asdentbase')->error('stopforumspam exception '.$e->getMessage());
    }
    $incredere = 0,0;
    $conficount = 0;
    $confimax = 0;
    array_walk_recursive($response_data, function ($v, $k) use (&$confidence, &$conficount, &$confimax) {
      dacă ($k == 'încredere') {
        $incredere += $v;
        dacă ($v > $confimax) $confimax = $v;
      }
      dacă ($k == „valoare”) {
        $conficount++;
      }
    });

    $sumconfi = $conficount == 0 ? 0.0 : $incredere / $conficount;
    dacă ($confimax > 80) {
      if ($sumconfi < $confimax) $sumconfi = $confimax;
    }


    returneaza $sumconfi;
  }

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.