✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Najskuteczniejsze wykrywanie kodu PHP antyspamowego dla WordPress

17

Blog wordpress może otrzymywać ponad 100 komentarzy spamowych (produkowanych przez roboty spamujące) dziennie, co jest denerwujące.

Najskuteczniejsze wykrywanie kodu PHP antyspamowego dla Wordpress

wordpress-spam

Generalnie mogą one zostać przechwycone przez wtyczki, takie jak Akismet, jednak dane te są nadal przechowywane w bazie danych, zanim zostaną ręcznie usunięte lub po upływie daty ważności.

LEONA zapewnia sprytne rozwiązanie zapobiegające przedostawaniu się tych spamowych komentarzy nawet do bazy danych. Polega na umieszczeniu w formularzu ukrytego pola i ustawieniu wartości, gdy użytkownik naciśnie klawisz (onkeyup). Więc jeśli wartości nie pasują, myślimy, że nie jest to składane przez człowieka.

wordpress zapewnia filtr preprocess_comment, dzięki czemu możesz sprawdzić komentarze i wyjść ze strony wcześniej za pomocą wp_die().

WP Official API mówi (https://codex.wordpress.org/Plugin_API/Filter_Reference/preprocess_comment ), $commentdata zawiera następujące informacje:

'comment_post_ID'      - The post to which the comment will apply
   'comment_author'       - (may be empty)
   'comment_author_email' - (may be empty)
   'comment_author_url'   - (may be empty)
   'comment_content'      - The text of the proposed comment
   'comment_type'         - 'pingback', 'trackback', or empty for regular comments
   'user_ID'              - (empty if not logged in)

Następnie możemy użyć tej wtyczki, aby umożliwić pingback/trackback (co moim zdaniem jest przydatne) i skutecznie pozbyć się komentarzy spamowych.

$leonax_magic_lower = 328;
$leonax_magic_upper = 3450709;
 
function leonax_anti_spam_form($fields){
    global $leonax_magic_lower, $leonax_magic_upper;
    $leonax_magic = mt_rand($leonax_magic_lower, $leonax_magic_upper);
    $fields['leonax_magic'] = <<<EOT
        <input type="hidden" id="leonax-magic" name="leonax-magic" value="0">
        <script type="text/javascript">
          jQuery(function() {
            jQuery("#comment").on("keyup", function() {
              jQuery("#leonax-magic").val("$leonax_magic");
            });
          })
        </script>
EOT;
    return $fields;
}
 
add_filter('comment_form_default_fields', 'leonax_anti_spam_form');
 
function leonax_anit_spam_caught() {
  wp_die('<strong>ERROR</strong>: Looks like you are a spam bot. Please stop doing this.');
}
 
function leonax_anti_spam_check( $commentdata) {
  $comment_type = '';
  if (isset($commentdata['comment_type'])) {
    $comment_type = trim($commentdata['comment_type']);
  }   
  
 if (($comment_type == 'pingback') || ($comment_type == 'trackback')) {
    return $commentdata;
  }
  $content = '';
  if (isset($commentdata['comment_content'])) {
    $content = trim($commentdata['comment_content']);
  }   
  if (!strlen($content)) {
    leonax_anit_spam_caught();
  }
  
  if (preg_match("/[a-e0-9]{25,}/i", $content)) { // To capture the strange IDs
    leonax_anit_spam_caught();  
  }
 
  global $leonax_magic_lower, $leonax_magic_upper;  
  
  if (isset($commentdata['user_ID']) && $commentdata['user_ID']) { // Login-users are not bad
    return $commentdata;
  }
  
  if (!isset($_POST['leonax-magic'])) {
    leonax_anit_spam_caught();
  }
  $magic = intval($_POST['leonax-magic']);
  if ($magic < $leonax_magic_lower || $magic > $leonax_magic_upper) {
    leonax_anit_spam_caught();
  }
  return $commentdata;
}
 
add_filter( 'preprocess_comment', 'leonax_anti_spam_check' );

Jeśli przetestujemy funkcję/filtr, wpisując celowo dziwne identyfikatory, otrzymamy następujące informacje (a komentarz nie zostanie wpisany w obszar oczekiwania).

Uwaga: Umieść powyższy kod na końcu szablonu functions.php (lub motywu potomnego).

Najskuteczniejsze wykrywanie kodu PHP antyspamowego dla Wordpress

WordPress-wykrywanie spamu

Działa jak magia!

Źródło nagrywania: helloacm.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów