ป้องกันเว็บอื่นดึงรูปไปใช้ ด้วย 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 ไม่หยุด

Was this article helpful?

Related Articles