ปัดรังควาญเจ้า emurhfkq

  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.
  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.

อ้างถึง มีใครโดนเจ้า emurhfkq รุกรานบ้างไหม?

วิธีที่ผมใช้คือแก้ไขไฟล์ .htaccess เดิมของ Drupal (ผมใช้รุ่น 4.7 นะ เพราะ host ยังเป็น php4 อยู่) โดยเพิ่มส่วนต่อไปนี้ลงในตอนท้าย

## Denied spambot
# set the spam_ref variable
SetEnvIfNoCase Referer "http(s)?://(www.)?google.com/$" spam_ref=1
SetEnvIfNoCase Referer "$" no_ref=1
# block all no referrer post
<Limit POST>
  Order Allow,Deny
  Allow from all
  Deny from env=no_ref
</Limit>
# block all referres those have spam_ref set
<FilesMatch "(.*)">
  Order Allow,Deny
  Allow from all
  Deny from env=spam_ref
</FilesMatch>

คำอธิบาย: พฤติกรรมของบอทตัวนี้คือใช้ Referrer เป็น http://www.google.com/ เสมอ ดังนั้นเลยเขียนเงื่อนไขดักว่าใครที่ได้ลิงก์เข้าเว็บผมจากหน้าแรกของ Google (มีด้วยหรือ???) ให้ถือว่าเป็น spam เลย
แต่แล้วหลังจากดักด้วยกฎข้อนี้ได้ไม่นาน ผมก็เจอพฤติกรรมแปลกอีกแล้ว คือ ชื่อบอทตัวนี้เช่นเดิม พยายามจะ Login อีกแต่คราวนี้ปราศจาก Referrer จึงทำให้ผมต้องเพิ่มกฎไปอีกข้อว่า ห้ามทำการ Post โดยไม่มี Referrer (หวังว่าคงจะไม่โดน Post มาจากเว็บแห่งอื่นในเร็วๆ นี้นะ) ซึ่งจะสามารถดักการยิง Post จากไฟล์ HTML เปล่าๆ (ยิงจากเครื่องใดๆ ที่ไม่ใช่หน้าเว็บบน Web Server) ได้

ถ้ามีคำแนะนำเพิ่มเติมก็ติชมได้ครับ ผมเขียน .htaccess ไม่เป็น นี่ก็ลองมั่วๆ ตามสิ่งที่พอจะหาได้บนเนต

jrp13th's picture

ขอบคุณครับ ^ ^

เหมือนเงื่อนไขตรวจ no referrer ของผมจะผิดนะครับ (มีหลุดมาได้ 2 ตัว) อย่างไรก็ฝากแก้ไขให้ด้วยครับ

if($GLOBALS[user]->name == "emurhfkq") die("Shit happends !!!");

เติมบรรทัดนี้ลงไปใน index.php ต่อจาก

drupal_ bootstrap(DRUPAL_ BOOTSTRAP_FULL);

น่าจะช่วยได้ครับ พอดีไม่คล่อง drupal ผมคิดว่าน่าจะมีวิธีทำให้เป็นโมดูล โดนเรียกใช้ตอน bootstrap ได้

update : เติมลงไปในท้ายฟังก์ชั่น drupal_ bootstrap() ใน include/bootstrap.php น่าจะเวิร์คกว่า เพราะ POST ไม่ได้ส่งเข้า index.php เสมอไป

sugree's picture

ถ้ามันมาด้วยชื่อเดิมตลอดก็ไปใส่ rule เพื่อไม่อนุญาตให้ใช้ชื่อนี้สมัครก็ได้ครับ

ปัญหาคือ ผมลบสมาชิกตัวนั้นไปแล้ว แต่ก็มีความพยายามจะ login เข้ามาตลอดครับ (ตั้ง access rule ไปก็ไม่มีประโยชน์เพราะมันไม่สามารถ login ได้อยู่แล้ว) ซึ่งผมเข้าใจว่าเมื่อมีการโหลด index.php ปุ๊บ มันจะไปกิน database connection ทันที ทำให้ database ล่มอยู่เสมอๆ

จึงเลี่ยงหันมาแก้ที่กระบวนการก่อนจะเข้าถึง index.php แทน แต่ก็อย่างที่เรียนไว้ข้างต้นว่า ผมเขียน .htaccess ไม่เป็น และก็เหมือน no referrer ที่ตั้งไว้ มันจะไม่ได้เป็นว่างๆ อย่างที่คิดแล้ว

ย้าย Codenone

ประกาศย้าย Codenone ไปใช้ Forum ของ Blognone แทนครับ ตามไปตั้งกระทู้ต่อได้ที่ Codenone Forum (รายละเอียดอ่านจากกระทู้ ย้าย Codenone ไปรวมกับ Blognone)

กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น