ป้องกันเว็บอื่นดึงรูปไปใช้ ด้วย Hotlink Protection

Hotlink Protection คือการป้องกันไม่ให้เว็บอื่นๆ สามารถนำไฟล์ (โดยเฉพาะไฟล์รูปภาพ) บนเว็บไซต์ของเราไปแสดงบนเว็บไซต์อื่นได้ ซึ่งการที่เราถูกดึงรูปไปใช้งานแล้วไม่เพียงแต่จะเสียแรงที่เราไปถ่ายรูปนั้น retouch รูปนั้น หรือตัดต่อรูปนั้นมา แต่คนอื่นแอบเอาไปใช้ซัเฉยๆ แถมเรายังเสียทรัพยากร Bandwidth และการประมวลผลของ Server ส่งรูปภาพไปแสดงบนเว็บไซต์ของผู้ที่เอาไปอีก การกระทำแบบนี้ถือว่า webmsater ผิดมารยาทในการทำเว็บมากๆ ครับ เราจึงมาทำการป้องกันกันได้โดยการสร้างไฟล์ .htaccess แล้วนำไปไว้ใน Directory เดียวกันกับ ไฟล์ที่ต้องการป้องกัน


ตัวอย่างการใช้งานไฟล์ .htaccess
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourdomain.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourdomain.com:80.*$ [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Pp][Nn][Gg]$ http://www.yourdomain.com/hotlink.html


จากตัวอย่างด้านบน เมื่อมีการเรียกไฟล์ *.jpg *.gif *.png Web Server จะตรวจสอบว่า referer ของ browser ที่เรียกไฟล์ดังกล่าว มาจากเว็บใด ถ้า referer ไม่ตรงตามที่เรากำหนดไว้ คือ www.yourdomain.com Web Server จะ redirect คำร้องดังกล่าวไปหาไฟล์ www.yourdomain.com/hotlink.html แทน ในไฟล์ hotlink.html ก็แล้วแต่ว่าเราจะเขียนอะไรลงไป เช่นบอกไปว่าไม่อนุญาติให้ทำ hotlink มาหาไฟล์ดังกล่าวเป็นต้น


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourdomain.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://yourdomain.com:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yourdomain.com:80.*$ [NC]
RewriteRule .*$ http://www.yourdomain.com/hotlink.html


สำหรับตัวอย่างด้านบน Web Server รับคำร้องขอจาก browser เมื่อมีการเรียกไฟล์ *.* และจะตรวจสอบ referer ว่าตรงตามที่เรากำหนดหรือไม่ ถ้าไม่ถูกต้องก็จะ redirect ไปที่ไฟล์ hotlink.html แทน


ข้อควรระวัง
หากท่านต้องการแสดงผลของการป้องกัน hotlink เป็นรูปภาพเช่น hotlink.jpg แทนที่จะใช้ข้อความจาก hotlink.html แบบตัวอย่างด้านบนแทน ให้ตรวจสอบให้แน่ชัดก่อนว่าตำแหน่งรูปภาพ hotlink.jpg นั้นไม่ได้อยู่ในเว็บที่ท่านกำลังจะทำ hotlink protection ไม่เช่นนั้น Web Server จะทำงานแบบ Loop ไม่หยุด

  • 0 Users Found This Useful
คำตอบนี้เป็นประโยชน์แก่ท่านหรือไม่?

Related Articles

วิธีเพิ่ม memory_limit ให้กับ PHP ด้วยไฟล์ .htaccess

memory limit คือ การกำหนดขนาด memory ให้เพียงพอสำหรับการประมวลผลของ script ที่ใช้งาน...

วิธีเพิ่ม upload_max_filesize ให้กับ PHP โดยใช้ .htaccess

หลายคนพบปัญหาติด Limit ในการ Upload File ไปยังเว็บไซต์ เนื่องจาก File...

วิธีเปิด และปิดไม่ให้ผู้ชมมองเห็น File ใน Web Directory

ปกติหากเราสร้าง Directory บน Server แต่ไม่มีไฟล์ index.html เมื่อเราเปิด Web Browser ไปที่...

การทำ 301 Redirect สำหรับเปลี่ยน http เป็น https

การติดตั้ง ssl certificate บนเว็บไซต์ของคุณจะทำให้ Link การเข้าถึงเว็บไซต์ของคุณเปลี่ยนไปจาก...

การป้องกัน Directory รูปภาพ และ upload ด้วยการใช้ Apache mod_rewrite

Script ที่ใช้งานในเว็บไซต์ไม่ว่าจะเขียนเอง หรือเป็น CMS ต่างๆ...

Powered by WHMCompleteSolution