WP – Coding Block Spammer!!! (Basic)

ถือว่าเกรียนมากครับในการเขียนบทความนี้ขึ้น 😀

แบบ Basic เนื่องจากผมไม่ได้เขียน Coding ที่ซับซ้อนอะไร ซึ่งถ้าจะ Advance ก็เปลี่ยนได้จาก ณ จุดนี้

จุดนี้คือตัวแปรที่เราเพิ่มขึ้นมาเอง ซึ่ง Spam Script ไม่สามารถเดาตัวแปรใหม่ๆได้นั่นเอง

วิธีทำ

1. เปิด file ชื่อ wp-includes/theme-compat/comment.php หา บรรทัดนี้ให้เจอ อยู่ล่างๆเลย

<p><textarea name=”comment” id=”comment” cols=”58″ rows=”10″ tabindex=”4″></textarea></p> ประมาณบรรทัดที่ 89

จากนั้นเขียนเพิ่มลงไปว่า

<p><input type=”checkbox” name=”oniphp” id=”oniphp” value=”1″ tabindex=”4″ />
<label for=”oniphp”><small><?php _e(‘Human?’); ?></small></label></p>

คำว่า oniphp สามารถเปลี่ยนเป็นอะไรก็ได้นะ

 

2. เปิด file ชื่อ wp-comments-post.php อยู่ด้านนอกสุดเลย หาคำว่า

if ( ” == $comment_content )
wp_die( __(‘<strong>ERROR</strong>: please type a comment.’) ); ประมาณบรรทัดที่ 83

จากนั้นเขียนเพิ่มลงไปว่า

$comment_oniphp      = ( isset($_POST[‘oniphp’]) ) ? trim($_POST[‘oniphp’]) : null;
if ( $comment_oniphp != 1 ) wp_die( __(‘<strong>ERROR</strong>: Sorry, No bots entry!!!.’) );

 

3. เปิด file ชื่อ wp-trackback.php อยู่ด้านนอกสุดเช่นกัน หาคำว่า

$comment_type = ‘trackback’; อยู่ประมาณ บรรทัดที่ 98

จากนั้นเขียนเพิ่มลงไปว่า

    if(isset($_SERVER[‘HTTP_REFERER’])){
        $http_referer = $_SERVER[‘HTTP_REFERER’];
        preg_match(“/^http://www.(.+?)//i”,$url,$matches);
        $domain_name = get_option(‘siteurl’).”/”;
        if($matches[0] != $domain_name){
            wp_die( __(‘<strong>ERROR</strong>: Sorry, No bots entry!!!.’) );
        }
    }

ขออธิบายคร่าวๆนะครับ

ข้อ 1 หมายถึง เพิ่ม checkbox ให้คนสามารถ ติ๊กว่า เป็น Human(มนุษย์) หรือเปล่า

ข้อ 2 หมายถึง รับค่า checkbox ถ้าไม่มีการ ติ๊ก ให้ ฟ้อง error ออกมา

ข้อ 3 หมายถึง เช็คที่มาจากการส่งต่อผ่านมายัง trackback นี้ ถ้าไม่ใช่ domain ของเรา ก็ฟ้อง error ออกมา

เมื่อทำครบ 3 ข้อแล้ว ก็ไม่มี Spam Script มากวนใจ แต่ ถ้าจงใจเขียน Script Spam มาที่เว็บของเราจริงๆ คงต้องเปลี่ยนจากการ ติ๊ก Human เป็น ตัวเลขบวกกันได้เท่าไหร่ หรือ กรอกตามตัวอักษรนะค๊าฟฟ ^^

Leave a Reply