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

การทำ 301 Redirect

วิธีนี้สำหรับท่านที่ต้องการย้ายที่อยู่ของ Website ไปยัง URL อื่นครับ เรียกง่ายๆ...

การ Block IP ไม่ให้เข้าเว็บไซต์

หากเราพบปัญหามีผู้ไม่ประสงค์ดี ทำการ กลั่นแกล้ง ก่อกวนระบบของเรา เราสามารถ Block IP...

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

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

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

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

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

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