Thaimisc.com : จำเป็นหรือไม่ที่เว็บมาสเตอร์ เขียนสคริปแต่ละตัวต้องเขียนเชค Refer [cgi-perl]
ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us | Colocation | Web Hosting | เปิดร้านค้าฟรี


Category : Perl Tip's Print Article Only Print Aticle With Comment
จำเป็นหรือไม่ที่เว็บมาสเตอร์ เขียนสคริปแต่ละตัวต้องเขียนเชค Refer [cgi-perl]
เขียนโดย Ak1 , 19-12-2001

ทำความเข้าใจกันก่อนสักนิด สำหรับผู้เริ่มต้น การเช็ค Refer คือการเช็ค URL ของ Web ที่ข้อมูลถูกส่งมา หรืออีกนัยหนึ่งคือ ข้อมูลนั้นถูกส่งมาจากที่ใด

ถ้าถามว่าจำเป็นหรือไม่ในการเช็ค Refer ในส่วนตัวผมคิดว่าจำเป็น เพราะมันเป็นอีกวิธีหนึ่งที่ช่วยกัน การกลั่นแกล้งจากผู้ไม่ประสงค์ดีทั้งหลายที่มีในสังคม Internet ตอนนี้

ยกตัวอย่างเช่น คุณมีบริการฟรีส่ง Mail หาใครก็ใด หากมีผู้ไม่ประสงค์ดีนำ URL ของสคริปคุณและทำการ Post ข้อความมายังสคริปส่ง Mail ในรูปแบบของ Spam Mail ไปให้คนอื่น คนที่เดือดร้อนคือ ตัวเวปมาสเตอร์ผู้ให้บริการฟรี ส่ง Mail เพราะคนรับก็จะดูว่าส่งมาจากที่ไหน และมาต่อว่าและเอาผิดกับเวปมาสเตอร์คนนั้น ซึ่งก็มีโอกาสทำให้เวปของคุณเสียหาย หากมีการพูดไปปากต่อปาก

อีกตัวอย่างที่ผมคิดว่า มันถือว่าเป็นช่องโหว่ของการเขียน cgi คือ หากคุณไม่เขียนส่วนที่เช็ค Refer ในสคริปของคุณ มันเป็นช่องโหว่ใหญ่มากที่มีโอกาสทำให้เซฟเวอร์ของคุณจะต้องทำงานหนักถึงหนักมาก ที่ผมบอกว่าเซฟเวอร์ต้องทำงานหนัก ขอเอาตัวอย่างเป็นว่าคุณเปิดให้ส่ง mail อีกครั้ง หากมีเวปมาสเตอร์(ที่หัวใส) ที่ไม่อยากเขียนสคริปส่ง Mail ฟรีเอง ก็นำเอา URL ของสคริปคุณ และทำ Form จากหน้า HTML ส่งมายังสคริปคุณ แค่นี้เขาก็สบายไม่ต้องเขียนสคริปเอง เซฟเวอร์เขาก็ไม่ต้องทำงานหนัก นี่ไม่รวมถึงหากมีคนคิดแกล้งจริงๆ เขียนสคริปโพส ข้อความและ Email มายังสคริปคุณเพื่อส่งให้คนอื่นครั้งละหลายๆ คน เซฟเวอร์คุณก็ต้องทำงานหนักโดยไม่จำเป็น นี่เป็นเพียงตัวอย่างที่อาจจะเป็นส่วนน้อย ที่เกิดขึ้นในสังคม Internet ของเราในปัจจุบัน การเช็ค Refer จึงเป็นประโยชน์ต่อตัวคุณเอง เพราะคุณจะได้คนที่เข้ามาใช้บริการจากเวปคุณจริงๆ เซฟเวอร์ของคุณไม่ทำงานหนักเกินความจำเป็น สคริปที่ผมจะแนะนำต่อไปนี้เป็นสคริปง่ายๆ ที่อาศัยตัวแปลแวดล้อมที่ชื่อ HTTP_REFERER เพื่อนำมาเช็คว่า ข้อมูลที่ส่งออกมาจากที่ใด โดยเขียนสคริปเช็คเพียงว่า หากข้อความไม่ได้ส่งมาจาก Web ของเราก็จะไม่ทำงาน และกลับไปให้ส่งกลับไปยังหน้าแรกของ web เรา

$refer = $ENV{'HTTP_REFERER'};
$site = "yourname.com";
$yoururl ="http://www.yourname.com";

if ($refer !~ /$yoururl/) { print "Location: $yoururlnn"; exit;}

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

if ($refer !~ /$yoururl/) {
print " <center> <b>ขออภัยข้อความที่ท่านส่งไม่ได้มาจาก $yoururl </b> </center> <br> n";
print " <center> <b><a href=$yoururl >โปรดคลิกที่นี่เพื่อกลับสู่หน้าส่ง</a></b> </center> <br> n";
exit;
}

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

เขียนโดย ak1

<- Back | Next ->

ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us
Copyright 1999-2006 Thailand Miscellaneous. Allrights reserved. webmaster@thaimisc.com