Spam on my site

หลังจากที่อัพเกรดเว็บเป็น Drupal เสร็จ ผมก็เข้ามาดูอยู่เรื่อย ๆ ไม่พบอะไรผิดปกติ นอกจากข้อมูลใน Google Analytic ที่มีจำนวนของ visitor ลดลงเรื่อย ๆ มันช่างน่าเศร้า...

แต่วันนี้เห็นว่ามีจำนวนความคิดเห็นโผล่ที่หน้าแรก... ใครมาโพสต์อะไรไว้หว่า พอตรวจสอบกลับพบว่าเป็น spam ทั้งนั้นเลย ไปตรวจสอบดูปาเข้าไป 29,284 ความคิดเห็นแล้ว คิดแล้วเหมือนไฟที่ลามอยู่ใต้ใบไม้ที่กองหนาทีบในป่ายังไงยังงั้น กว่าจะรู้ตัว มันก็ลุกลามกินพื้นที่ไปมากมายมหศาลแล้ว

ก่อนจะจัดการอะไรลงไป ก็มาหาสาเหตุก่อน เพราะผมได้ลง Mollom ซึ่งเอาไว้จัดการกับ spam อยู่แล้ว และพบว่า Mollom มีปัญหา แจ้ง error เกี่ยวกับการตั้งค่าการตรวจสอบ field ต่าง ๆ ของ Drupal มีปัญหา ตอนแรกที่อัพเกรดเสร็จ ผมตรวจสอบดีแล้วว่า มันไม่มีปัญหาอะไร เลยไม่ได้ดูอีก จนมาถึงวันนี้

ข้อมูลในหน้า Statistics ของ Mollom ดูเหมือนจะมีปัญหาเมื่อวันที่ 13 มีนา

ตอนแรกลอง Uninstall แล้ว Install ใหม่ก็ใช้ไม่ได้ เลยติดสินใจลบที่มีอยู่ Mollom ทิ้ง แล้วดาวโหลดมาติดตั้งใหม่ คราวนี้ไม่มี error อีก ตั้งค่าเสร็จ ก็หาทางจัดการกับ spam ที่มีอยู่

เนื่องด้วยไม่มีปัญญาจะลบข้อมูลมากขนาดนั้นผ่านทางปกติที่ Drupal ทำไว้ให้ เลยจำเป็นต้องใช้การแก้ไขฐานข้อมูลผ่าน phpMyAdmin และต้องแบกรับความเสี่ยงทั้งหมดไว้เองตามระเบียบ

วิธีการนั้นไม่ยุ่งยากสักเท่าไหร่ แต่ถ้ารู้คำสั่ง SQL บ้างจะช่วยได้เยอะครับ

  1. ลบข้อมูลที่อยู่ในตาราง comment และ field_data_comment_body ทิ้ง แก้ไขค่า auto_increment ให้ถูกต้อง แค่นี้ spam ก็ถูกลบหมด
  2. ถึงตอนนี้ จำนวนความคิดเห็นที่แสดงอยู่ ยังไม่ถูกต้อง ต้องไปแก้ไขค่าใน node_comment_statistics ให้ถูกต้อง แต่ถ้าลบความคิดเห็นทิ้งไปทั้งหมด จะ Empty (TRANCATE) ตารางนี้ก็ไม่มีปัญหา

แต่จะมี error โผล่ขึ้นมาในหน้าที่ไม่มีความคิดเห็น แต่จะไม่มีในหน้าที่มีความคิดเห็นอยู่ หรือ โหนดที่ปิดไม่ให้แสดงความคิดเห็น

Notice: Undefined property: stdClass::$comment_count in comment_node_page_additions() (line 724 of /../../modules/comment/comment.module).

ผมลองหาดูใน drupal.org ก็ไม่ได้รับคำตอบ มีคนรายงานว่าเป็น bug แต่ถูกปฏิเสธว่า ไม่เกี่ยวกับตัว Drupal (works as design) แต่เท่าที่สังเกตรู้สึกว่าจะมีข้อมูลที่ขัดแย้งกันอยู่ เกี่ยวกับจำนวนความคิดเห็นที่ไม่ตรงกัน ซึ่งปัญหาคือ มันอยู่ไหน?

นอกจากนี้พออัพเดท module GeSHi ปรากฎว่า ใช้ไม่ได้ โอ้ปวดหัวมาก.... พยายามทำหลายทางแล้วใช้ไม่ได้สักทีเจอ Fetal Error เข้าไป อยากจะถอยไปหา Syntaxhighlighter แต่ก็เจอปัญหากับ Syntaxhighlighter อีก หนีเสือปะจระเข้ชัด ๆ เลยงานนี้ อยากตายชะมัด

หรือว่าสุดท้ายแล้วกลับไปใช้แค่ ~~~ ดี ง่าย สะดวก (แต่ลำบากคนอ่านอีก เฮ้อ)

EDIT at 2011-05-04 10:08:

หลังจากเมื่อคืนทำไม่สำเร็จ มาตรวจสอบ error ต่อตอนเช้าวันรุ่งขึ้น พบว่า เพราะ node_comment_statistics มันไม่อัพเดทให้ถูกต้อง (ไม่อัพเดทเลยล่ะ) ทำให้เกิดปัญหาตรงนี้ ลองหาดูก็เจอกับอันนี้ How to rebuild node_comment_statistics ติดตั้ง Devel แล้วก็สั่ง devel_rebuild_node_comment_statistics(); ในเมนู Execute PHP Code เป็นอันเรียบร้อย

แต่ไม่รู้ว่าถ้าสร้างโหนดใหม่ขึ้นมา จะมีปัญหาตรงนี้อีกหรือเปล่านะ แต่ถ้ามีก็สั่งคำสั่งเมื่อกี้ใหม่อีกรอบ... ไปเรื่อย ๆ : (

EDIT at 2011-05-04 19:55:

ที่โมดูล GeSHi มีปัญหาเพราะว่าลงโมดูล Libraries ผิดรุ่น GeSHi ต้องการ 2-dev แต่ผมลง 1.0 ที่ลงเพราะว่ามันเป็นรุ่นเสถียร ไม่ได้อ่านให้ดีว่า GeSHi ต้องการอันไหนกันแน่ ลงรุ่นใหม่ก็ใช้ได้เลย แต่สักพัก Devel กลับมีปัญหา "open_basedir restriction" อีก เลยเอามันออกไปก่อน

งานนี้ไม่รู้ต้องสู้กับ spam ไปอีกกี่วัน แล้วก็ไม่รู้ว่าต้องแก้ปัญหาไปอีกเท่าไหร่ เหนื่อยใจจริง ๆ

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.