วิธีการป้องกัน Hotlink (ฮอตลิ้ง) ด้วยการกำหนดค่าในไฟล์ .htaccess (ดอทแฮชทีแอคเซส)

ภาพประกอบบทความเกี่ยวกับการตั้งค่าป้องกัน Hotlink ในไฟล์ .htaccess
ภาพประกอบบทความเกี่ยวกับการตั้งค่าป้องกัน Hotlink ในไฟล์ .htaccess

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

ตัวอย่างการใช้งานไฟล์ .htaccess

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://demo.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.demo.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://demo.com:80.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.demo.com:80.*$ [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Pp][Nn][Gg]$ http://www.demo.com/hotlink.html

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

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

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

            เมื่อเราทำการตั้งค่าเสร็จเรียบร้อยแล้ว ให้นำไฟล์ .htaccess วางไว้ใน Directory ที่เราต้องการจะป้องกัน Link (ลิ้งค์) ไฟล์ภาพ, วีดีโอ นั้นด้วย

Reference: "การแปลง URL โดยใช้ Mod_Rewrite". "การแปลง URL โดยใช้ Mod_Rewrite" [ออนไลน์]. เข้าถึงได้จาก https://www.picohosting.com/howto/hotlink-protection
Reference: "How To Use Mod_rewrite For URL Rewriting In Apache". "How To Use Mod_rewrite For URL Rewriting In Apache" [ออนไลน์]. เข้าถึงได้จาก https://websetnet.com/auto-draft-11/
Refernece: "Apache Module mod_rewrite". "Apache Module mod_rewrite"[ออนไลน์]. เข้าถึงได้จาก http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

 ภาพประกอบบทความ https://www.atulhost.com/hotlink-protection-nginx

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
มือใหม่หัด Photoshop ทำเว็บ รบกวนผู้รู้ช่วยตอบด้วยครับ
โดย tum15 จ 26 พ.ย. 2012 3:27 pm บอร์ด HTML CSS
1
6005
จ 26 พ.ย. 2012 4:48 pm โดย mindphp View Topic มือใหม่หัด Photoshop ทำเว็บ รบกวนผู้รู้ช่วยตอบด้วยครับ
จำนวน ในหน้าย่อย ของ Theme , Sectors ผิด
โดย mindphp ศ 23 พ.ย. 2012 6:43 pm บอร์ด Msearch V2
3
9
จ 26 พ.ย. 2012 1:55 pm โดย tsukasaz View Topic จำนวน ในหน้าย่อย ของ Theme , Sectors ผิด
รบกวนถามวิธีการทำระบบ PM ส่งข้อควา
โดย Anonymous อ 25 พ.ย. 2012 1:26 pm บอร์ด Programming - PHP
6
4899
ศ 30 พ.ย. 2012 10:48 pm โดย บุคคลทั่วไป View Topic รบกวนถามวิธีการทำระบบ PM ส่งข้อควา
รบกวนดูโค้ดให้หน่อยครับ ข้อมูบไม่เข้าฐานข้อมูบ
โดย Anonymous ส 24 พ.ย. 2012 8:34 pm บอร์ด Programming - PHP
1
2670
อ 25 พ.ย. 2012 1:53 am โดย mindphp View Topic รบกวนดูโค้ดให้หน่อยครับ ข้อมูบไม่เข้าฐานข้อมูบ
รบกวนที่ครับ VM ราคาสินค้าไม่แสดง
โดย nuarsenal ส 24 พ.ย. 2012 5:02 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
3
2193
ส 24 พ.ย. 2012 7:27 pm โดย mindphp View Topic รบกวนที่ครับ VM ราคาสินค้าไม่แสดง
ลิงค์จาก module Recent ไม่มี Itemid
โดย mindphp ศ 23 พ.ย. 2012 9:24 pm บอร์ด Msearch V2
1
4
จ 26 พ.ย. 2012 11:00 am โดย tsukasaz View Topic ลิงค์จาก module Recent ไม่มี Itemid
สอบถามเรื่อง การแทรกแถวใน mysql ครับ
โดย Chayyim ศ 23 พ.ย. 2012 6:58 pm บอร์ด Programming - PHP
4
4290
ศ 23 พ.ย. 2012 7:37 pm โดย Chayyim View Topic สอบถามเรื่อง การแทรกแถวใน mysql ครับ
วิธีการอัพเกรด Prestashop จาก v.1.3.0 ไป v.1.5.2
โดย M003 ศ 09 พ.ย. 2012 5:25 pm บอร์ด Share Knowledge
4
2681
ส 10 พ.ย. 2012 2:33 pm โดย M003 View Topic วิธีการอัพเกรด Prestashop จาก v.1.3.0 ไป v.1.5.2