'; wpmt_admin_stat_card(__('Blockierte Kommentare', 'wp-multi'), number_format_i18n($blocked_comments), 'dashicons-dismiss'); wpmt_admin_stat_card(__('Honeypot-Treffer', 'wp-multi'), number_format_i18n($honeypot_hits), 'dashicons-shield'); wpmt_admin_stat_card(__('Spammer-IPs', 'wp-multi'), number_format_i18n(count($spammer_ips)), 'dashicons-admin-site-alt3'); wpmt_admin_stat_card(__('Spam-Einreichungen', 'wp-multi'), number_format_i18n(count($spam_submissions)), 'dashicons-email-alt'); echo ''; wpmt_admin_card_open(__('Spammer-IP-Adressen', 'wp-multi')); if (!empty($spammer_ips)) { ?>
Verwenden Sie ein zufälliges Zeichenfolgen für das Honeypot-Feld. Die Nachricht, die angezeigt wird, wenn ein Honeypot ausgelöst wird. > Deaktivieren Sie das Honeypot-Test-Widget im Frontend. Maximale Anzahl von Links, die in einem Kommentar erlaubt sind. Schlüsselwörter, die blockiert werden sollen (durch Kommas getrennt). Blockierte IP-Adressen (jede Adresse in einer neuen Zeile). $reason, 'ip' => $ip, 'timestamp' => current_time('mysql'), ]; // Auf die letzten 200 Einträge begrenzen, damit die Option nicht unbegrenzt wächst if (count($submissions) > 200) { $submissions = array_slice($submissions, -200); } update_option('wp_multi_spam_submissions', $submissions); } // Honeypot-/Zeitfallen-Prüfung sowie IP-/Keyword-/Link-Filter beim Absenden eines Kommentars function wp_multi_validate_comment_submission($commentdata) { $ip = function_exists('get_user_ip') ? get_user_ip() : (isset($_SERVER['REMOTE_ADDR']) ? sanitize_text_field(wp_unslash($_SERVER['REMOTE_ADDR'])) : ''); // Honeypot-Feld: darf von einem Menschen nie ausgefüllt werden $field_name = get_option('wp_multi_honeypot_field', 'iwlxja5187'); if (!empty($_POST[$field_name])) { wp_multi_register_spam_hit('honeypot', $ip); wp_die(esc_html(get_option('wp_multi_honeypot_error', 'Spamming or your Javascript is disabled !!'))); } // Zeit-Falle: Formular darf nicht schneller als 3 Sekunden nach dem Laden abgeschickt werden if (isset($_POST['wp_multi_form_time'])) { $elapsed = time() - absint($_POST['wp_multi_form_time']); if ($elapsed < 3) { wp_multi_register_spam_hit('honeypot_zeitfalle', $ip); wp_die(esc_html(get_option('wp_multi_honeypot_error', 'Spamming or your Javascript is disabled !!'))); } } // Blockierte IP-Adressen $blocked_ips = array_filter(array_map('trim', explode("\n", (string) get_option('wp_multi_blocked_ips', '')))); if ($ip && in_array($ip, $blocked_ips, true)) { wp_multi_register_spam_hit('blocked_ip', $ip); wp_die(esc_html__('Deine IP-Adresse wurde für Kommentare gesperrt.', 'wp-multi')); } $content = isset($commentdata['comment_content']) ? $commentdata['comment_content'] : ''; // Blockierte Schlüsselwörter $blocked_keywords = array_filter(array_map('trim', explode(',', (string) get_option('wp_multi_blocked_keywords', '')))); foreach ($blocked_keywords as $keyword) { if ($keyword !== '' && stripos($content, $keyword) !== false) { wp_multi_register_spam_hit('keyword', $ip); wp_die(esc_html__('Dein Kommentar enthält nicht erlaubte Inhalte.', 'wp-multi')); } } // Maximale Anzahl an Links im Kommentar $max_links = absint(get_option('wp_multi_max_links', 3)); if ($max_links > 0 && preg_match_all('#https?://#i', $content) > $max_links) { wp_multi_register_spam_hit('links', $ip); wp_die(esc_html__('Dein Kommentar enthält zu viele Links.', 'wp-multi')); } // Kommentarfilter: Telefonnummern, E-Mails, URLs, IPs, Schimpfwörter durch * ersetzen $commentdata['comment_content'] = wp_multi_apply_comment_content_filter($content); return $commentdata; } add_filter('preprocess_comment', 'wp_multi_validate_comment_submission');