עצירת הספאם באתר הוורדפרס שלכם בעזרת Honeypot

שתפו:

Share on facebook
Share on google
Share on twitter
Share on linkedin

מי מאתנו לא נפגע מספאם ? כולנו.
ספאם בהקשר של וורדפרס היא שליחה מסיבית של הודעות למערכת התגובות או למערכת הטפסים.
במאמר הזה אנחנו נדון בטכניקה מאוד פופולרית למלחמה בספאם בשם: "מלכודת דבש – honeypot".
רוב הספאם שמגיע אלינו היום הוא למעשה תוצאה של סקריפט או בוט אוטומטי. סקריפט הוא טיפש הוא ממלא את כל השדות בלי להתחשב בשום מצב.
honeypot – כשמה כן היא, למעשה מנצלת את זה ועל ידי הטמעה של שדה נסתר נוכל לבדוק אם השדה מלא או לא. אם הוא מלא אז למעשה זאת פעולה של בוט ונוכל להתעלם או לחסום מהבקשה.

במדריך זה אני אראה לכם איך להטמיע honeypot בעזרת קוד ולחסל את הספאם באתר.
את הקוד יש להדביק בקובץ functions.php או להוריד ולעלות בתור תוסף.

הוקים – תהליך ההרשמה

אנחנו נשתמש בהוק בשם register_form להוספה של שדה לטופס ההרשמה שלנו.
נשתמש בהוק registration_errors כדי לבצע ולידציה למלכודת שלנו.
[prism lang="php"]
add_action( 'register_form', array( $this, 'add_honeypot' ) );
add_filter( 'registration_errors', array( $this, 'verify_register_honeypot' ), 10, 3 );
[/prism]

הוקים – תגובות

נשתמש בהוק comment_form_top להוספה של המלכודת לטופס התגובות
נשתמש בהוק preprocess_comment כדי לבצע ולידציה לפני שהתגובה נשמרת לבסיס הנתונים.
[prism lang="php"]
add_action( 'comment_form_top', array( $this, 'add_honeypot' ) );
add_filter( 'preprocess_comment', array( $this, 'verify_comments_honeypot' ) );
[/prism]

המתודות/פונקציות – לוגיקה

הפונקציה שמדפיסה את השדה שלנו תואמת בשני המקרים
[prism lang="php"]
public function add_honeypot() {
echo '';
}
[/prism]

בפונקציות הולידציה verify_register_honeypot ו- verify_comments_honeypot נבצע קריאה לאותה פונקציה שתבצע את הלוגיקה של הולידציה

[prism lang="php"]
private function verify_honeypot() {

if ( ! isset( $_POST['catch'] ) ) {
wp_die( 'Stop Spam' );
}

if ( ! empty( $_POST['catch'] ) ) {
wp_die( 'Stop Spam' );
}
}
[/prism]

סיכום וקוד סופי

אני מצרף את הקוד כאן במבנה של תוסף, במעבר עכבר מעל הקטע קוד יצוץ לכם סרגל בצד ימין עם כפתור "שמירה כ- ZIP".
את קובץ ה- ZIP תעלו לאתר שלכם כתוסף.

[prism lang="php"]
/*
Plugin Name: WPDEV Stop Spam
Description: Stop Spam With Honeypot
Plugin URI: https://wpdev.co.il
Author: Yehuda Hassine
Author URI: https://wpdev.co.il
Version: 1.0
License: GPL3
*/
class WPDEV_Stop_Spam {

public function __construct() {
// Register
add_action( 'register_form', array( $this, 'add_honeypot' ) );
add_filter( 'registration_errors', array( $this, 'verify_register_honeypot' ), 10, 3 );

// Comments
add_action( 'comment_form_top', array( $this, 'add_honeypot' ) );
add_filter( 'preprocess_comment', array( $this, 'verify_comments_honeypot' ) );
}

public function add_honeypot() {
echo '';
}

public function verify_register_honeypot( $errors, $sanitized_user_login, $user_email ) {

$this->verify_honeypot();

return $errors;
}

public function verify_comments_honeypot( $commentdata ) {

$this->verify_honeypot();

return $commentdata;
}

private function verify_honeypot() {

if ( ! isset( $_POST['catch'] ) ) {
wp_die( 'Stop Spam' );
}

if ( ! empty( $_POST['catch'] ) ) {
wp_die( 'Stop Spam' );
}
}
}
new WPDEV_Stop_Spam;
[/prism]

יהודה חסין

יהודה חסין

מפתח וורדפרס עם ניסיון של חמש שנים בפיתוח תוספים ותבניות. היה לי העונג לעבוד מפרוייקטים קטנים עד לפרוייקטים גדולים לחברות הגדולות במשק. אפשר למצוא אותי גם בקבוצה: פיתוח וורדפרס בפייסבוק.

יהודה חסין

מפתח וורדפרס עם ניסיון של חמש שנים בפיתוח תוספים ותבניות. היה לי העונג לעבוד מפרוייקטים קטנים עד לפרוייקטים גדולים לחברות הגדולות במשק. אפשר למצוא אותי גם בקבוצה: פיתוח וורדפרס בפייסבוק.

מאמרים אחרונים

קטגוריות

Post SMTP Mailer / Email Log
Post SMTP Mailer / Email Log
קראו את הפוסט הקודם:
הגדרת רקע וידאו מתנגן במכשיר נייד בעזרת אלמנטור או רק עם קוד

עדכון 27.2.2019: עקב הביקוש המטורף לתוכן המאמר, שכתבתי מספר צעדים כמו תמיכה במספר סרטונים באותו עמוד וקוד מוכן להכנסה לתבנית....

סגור