Super lange URLs sind ein sicheres Zeichen dafür, dass ein Kommentar Spam ist. Dies markiert Kommentare mit URLs (als Autoren-URL, nicht nur im Text) von mehr als 50 Zeichen Länge als Spam, ansonsten bleibt ihr Status unverändert.
<?php
function rkv_url_spamcheck( $approved , $commentdata ) {
return ( strlen( $commentdata['comment_author_url'] ) > 50 ) ? 'spam' : $approved;
}
add_filter( 'pre_comment_approved', 'rkv_url_spamcheck', 99, 2 );
?>
Die URL dieser Seite ist 74 Zeichen lang.
Wenn ein Benutzer dies also als seine Autoren-URL in einem Kommentar hinterlässt, würde es mit diesem Snippet als Spam markiert werden.
Oh, nur für die Autoren-URL – verstehe.
Ich habe "nicht nur im Text" als "nicht ausschließlich im Text" gelesen. Mein Fehler – obwohl ich vermute, dass auch andere Leute hier stolpern könnten. Vielleicht wäre es klarer, wenn Sie "Autoren-URLs" auch in der Überschrift oder im ersten Satz erwähnen würden?
Ich habe gerade herausgefunden, dass WordPress scheinbar ein funktionierendes Skript in einem Kommentar akzeptiert. Das erscheint mir sehr bedenklich, basierend auf anderen Dingen, die ich über die Bereinigung von Benutzereingaben gelesen habe, bevor sie wieder ausgegeben werden. Ich werde es hier ausprobieren und sehen, ob es auch auf Ihrer Seite funktioniert: alert('wirklich?!?').
Wenn Ihre Seite wie meine ist, wird diese Seite jetzt jedes Mal, wenn sie aktualisiert wird, "wirklich?!?." anzeigen. Wenn Sie dies jedoch verhindert haben, hoffe ich, einen effektiven Ansatz dafür auf meiner Seite zu lernen.
Wenn dieses kleine Skript hier – und wahrscheinlich auf Millionen anderer WP-Seiten – funktioniert, würde ich wirklich gerne Ihre Meinung zur Sicherheit davon hören.
Vielen Dank,
Dave
Ich sehe, dass Ihr Kommentarformular die Skript-Tags herausgefiltert und nur die harmlose Zeichenkette als Teil der Nachricht hinterlassen hat. Sehr gut.
Ich habe gestern eine Frage dazu im WordPress.org-Supportforum gestellt, und die Antwort, die ich erhielt, war: „Versuchen Sie, die üblicherweise in Skripten verwendeten Schlüsselwörter wie script, type, javascript usw. in der Kommentar-Blacklist zu blockieren, indem Sie zu Ihren Diskussionseinstellungen (Dashboard) gehen.“ Das erschien mir nicht besonders beruhigend.
Können Sie mir bitte einen Hinweis auf den besten Weg geben, das Kommentarformular auf meiner Website sicherer zu machen?
Nochmals vielen Dank,
Dave
Tatsächlich können Sie Regex verwenden.
Zuerst sollten Sie filter_var($url, FILTER_VALIDATE_URL) verwenden, dann Regex. Für Regex können Sie Beispiele von regexr.com ausprobieren.