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');