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

 Print this Article

Also Read

วิธีสร้างหน้า Error 404 และอื่นๆ ในแบบของเราเอง

ก่อนอื่นสร้างไฟล์สำหรับแสดงผลเมื่อเกิด Error ในการเปิด Website ของคุณครับ...

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

Server ที่เราให้บริการมีการจำกัดเวลาในการ Execute File ไม่ให้ใช้เวลานานเกินไปครับ...

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

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

การใช้ mod_rewrite เพื่อทำ url ภาษาไทย

เนื่องจาก url เป็นส่วนหนึ่งที่สำคัญต่อการทำ SEO มากๆ ในบางครั้งเมื่อเราต้องการทำ SEO keyword...

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

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