วิธีเปิด Hotlink Protection ใน DirectAdmin

หากเว็บไซต์ของคุณมีรูปภาพที่น่าสนใจ มีโอกาสที่เว็บไซต์อื่นจะนำ URL รูปภาพของคุณไปใช้โดยตรง ทำให้ Bandwidth ของคุณถูกใช้ไปโดยไม่ได้รับประโยชน์ Hotlink Protection ใน DirectAdmin ช่วยแก้ปัญหานี้ได้อย่างมีประสิทธิภาพ

Hotlink Protection คืออะไร

Hotlink Protection (หรือ Hotlinking Prevention) คือระบบป้องกันไม่ให้เว็บไซต์อื่นแสดงไฟล์จากเซิร์ฟเวอร์ของคุณโดยตรงผ่านการลิงก์โดยตรง (Direct Linking) เช่น หากเว็บ B ใช้แท็ก <img src="https://yoursite.com/images/photo.jpg"> ในหน้าเว็บของตน ทุกครั้งที่มีผู้เข้าชมเว็บ B ภาพนั้นจะถูก Download จากเซิร์ฟเวอร์ของคุณโดยตรง

ทำไม Hotlink ถึงเป็นปัญหา

Hotlinking สร้างปัญหาให้เจ้าของเว็บไซต์หลายด้าน:

วิธีเปิด Hotlink Protection ใน DirectAdmin ทีละขั้น

  1. เข้าสู่ระบบ DirectAdmin แล้วไปที่หมวด Advanced Features
  2. คลิก Hotlink Protection
  3. เลือกโดเมนที่ต้องการเปิดใช้งานในช่อง Domain
  4. คลิกปุ่ม Enable Hotlink Protection เพื่อเปิดใช้งาน
  5. กรอก URL ของเว็บไซต์ตัวเองในส่วน URLs to Allow (ต้องใส่ไว้เสมอ มิฉะนั้นเว็บตัวเองก็จะถูก Block)
  6. กรอกนามสกุลไฟล์ที่ต้องการป้องกันในส่วน Extensions to Protect
  7. คลิก Save

กำหนดนามสกุลไฟล์ที่ป้องกัน

โดยทั่วไปนามสกุลไฟล์ที่ควรป้องกันคือไฟล์ที่มีขนาดใหญ่หรือมีคุณค่าทางทรัพย์สินทางปัญญา:

ใน DirectAdmin ให้กรอกนามสกุลไฟล์คั่นด้วย | เช่น jpg|jpeg|png|gif|webp|pdf โดยไม่ต้องมีจุดนำหน้า

Whitelist: อนุญาต URL บางเว็บไซต์

มีบางกรณีที่คุณต้องการอนุญาตให้เว็บไซต์บางแห่งสามารถ Hotlink ไฟล์จากเซิร์ฟเวอร์ของคุณได้ เช่น เว็บไซต์พาร์ทเนอร์หรือ Google Images การเพิ่ม Whitelist ทำได้ดังนี้:

  1. ในส่วน URLs to Allow กรอก URL ของเว็บไซต์ที่ต้องการอนุญาต
  2. ใส่ทั้ง URL แบบ http:// และ https:// สำหรับแต่ละเว็บ
  3. URL ของเว็บไซต์ตัวเองต้องอยู่ใน Whitelist เสมอ

ตัวอย่าง URLs ที่ควรใส่ใน Whitelist: https://www.yoursite.com, http://www.yoursite.com

สำคัญ: หากเว็บตัวเองใช้ CDN (เช่น Cloudflare, BunnyCDN) ต้อง Whitelist URL ของ CDN ด้วย มิฉะนั้น CDN จะไม่สามารถโหลดไฟล์จากเซิร์ฟเวอร์ต้นทางของคุณได้ และรูปภาพบนเว็บจะแสดงไม่ออก

วิธีปิด Hotlink Protection

หากต้องการปิด Hotlink Protection ชั่วคราวหรือถาวร:

  1. กลับไปที่หน้า Hotlink Protection ใน DirectAdmin
  2. เลือกโดเมนที่ต้องการ
  3. คลิกปุ่ม Disable Hotlink Protection
  4. คลิก Save เพื่อบันทึก
หน้า Hotlink Protection สำหรับป้องกันการขโมย Bandwidth
หน้า Hotlink Protection สำหรับป้องกันการขโมย Bandwidth
กดปุ่ม Enable (วงแดง) และกรอก URL ที่อนุญาต แล้วกด Save
กดปุ่ม Enable (วงแดง) และกรอก URL ที่อนุญาต แล้วกด Save

การปิด Hotlink Protection จะทำให้ทุกเว็บไซต์สามารถโหลดไฟล์จากเซิร์ฟเวอร์ของคุณได้อีกครั้ง

Hotlink คืออะไรและทำไมถึงเป็นการขโมย Bandwidth

Hotlinking หรือที่รู้จักในชื่อ "Bandwidth Theft" คือการที่เว็บไซต์อื่นนำ URL ของไฟล์บนเซิร์ฟเวอร์คุณไปฝังในหน้าเว็บของตนเองโดยตรง ผลก็คือทุกครั้งที่มีผู้เข้าชมเว็บนั้น เซิร์ฟเวอร์ของคุณต้องส่งไฟล์ออกไปให้ แต่คุณไม่ได้รับประโยชน์ใดๆ เลยจากการเข้าชมนั้น

ผลกระทบที่ร้ายแรงของ Hotlinking มีหลายด้านดังนี้:

Hotlink Protection แก้ปัญหาทั้งหมดนี้ได้ด้วยการตรวจสอบ HTTP Referer ทุก Request ก่อนที่จะส่งไฟล์ออกไป

ตั้ง Hotlink Protection ใน .htaccess แบบ Manual

นอกจากการใช้ Interface ของ DirectAdmin แล้ว คุณยังสามารถตั้งค่า Hotlink Protection โดยตรงผ่านไฟล์ .htaccess ซึ่งให้ความยืดหยุ่นมากกว่าในการควบคุมพฤติกรรมต่างๆ

เปิดไฟล์ .htaccess ใน public_html แล้วเพิ่มโค้ดต่อไปนี้:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yoursite\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp|pdf|mp4|mp3)$ - [F,L]

คำอธิบายแต่ละบรรทัด:

ข้อดีของการตั้งผ่าน .htaccess คือสามารถเพิ่มเงื่อนไขพิเศษหรือ Exception ได้อย่างละเอียด เช่น อนุญาตเฉพาะ IP บางช่วง หรือบล็อกเฉพาะโดเมนที่รู้จัก

หมายเหตุ: อย่าลืมเปลี่ยน yoursite.com เป็นชื่อโดเมนจริงของคุณ และถ้าเว็บมีหลายโดเมนหรือ Subdomain ที่ต้องการอนุญาต ให้เพิ่ม RewriteCond เพิ่มเติมสำหรับแต่ละโดเมน

การอนุญาต Referrer บางรายการ (Google Image, Facebook, ตัวเอง)

เมื่อเปิด Hotlink Protection แล้ว บางครั้งคุณยังต้องการให้บางแหล่งที่มาสามารถโหลดไฟล์จากเซิร์ฟเวอร์ของคุณได้ เช่น Google Image Search, Facebook Link Preview หรือเว็บพาร์ทเนอร์ ซึ่งสามารถทำได้โดยการเพิ่มรายการใน Whitelist ดังนี้:

Google Image Search

เมื่อผู้ใช้คลิกดูรูปภาพใน Google Images รูปภาพจะถูกโหลดจากเซิร์ฟเวอร์ต้นทางโดยตรง โดย Referer จะเป็น https://www.google.com หรือ https://images.google.com หากต้องการให้ Google Images แสดงรูปภาพของคุณได้ ให้เพิ่มใน DirectAdmin:

Facebook Link Preview

เมื่อมีการแชร์ลิงก์บน Facebook โปรแกรมรวบรวมข้อมูล (Crawler) ของ Facebook จะเข้าถึงรูปภาพ OG Image ของหน้านั้น หาก Hotlink Protection บล็อก Request ดังกล่าว การแสดงตัวอย่างลิงก์บน Facebook จะไม่มีรูปภาพ ให้เพิ่ม:

อย่างไรก็ตาม Facebook Crawler มักส่ง Request โดยไม่มี Referer หรือมี User-Agent ที่บอกว่าเป็น Bot ซึ่งโดยทั่วไป Apache จะอนุญาต Request ที่ไม่มี Referer ผ่านอัตโนมัติอยู่แล้ว

เว็บไซต์ตัวเองและ CDN

นี่คือรายการที่สำคัญที่สุด เพราะหากขาดไป เว็บของคุณเองจะโหลดรูปภาพไม่ได้ ให้เพิ่มทุก URL ที่ใช้งานจริง:

ผลกระทบของ Hotlink Protection ต่อ Social Media Sharing

เมื่อเปิด Hotlink Protection แล้ว อาจมีผลกระทบต่อการแชร์บน Social Media โดยเฉพาะการแสดง OG Image (Open Graph Image) ที่ใช้สำหรับ Facebook Preview และ Twitter Card ดังนั้นจึงจำเป็นต้องเข้าใจกลไกการทำงานและวิธีป้องกัน

OG Image (Open Graph Protocol)

Facebook ใช้แท็ก <meta property="og:image"> เพื่อดึงรูปภาพประกอบเมื่อมีการแชร์ลิงก์ Facebook Crawler (facebookexternalhit) จะส่ง Request ไปยัง URL รูปภาพนั้นโดยตรง หากถูกบล็อกจาก Hotlink Protection การแสดงตัวอย่างจะไม่มีรูปภาพ ซึ่งทำให้ Engagement ลดลงอย่างมาก

Twitter Card

Twitter ใช้กลไกคล้ายกัน โดย Twitter Crawler (Twitterbot) จะเข้าถึงรูปภาพที่ระบุใน <meta name="twitter:image"> ถ้าถูกบล็อก Twitter Card จะแสดงเป็นลิงก์ธรรมดาโดยไม่มีรูปภาพ ทำให้ดูไม่น่าสนใจ

วิธีแก้ปัญหา

โดยทั่วไป Bot ของ Social Media ไม่ส่ง Referer Header เมื่อดึงรูปภาพ ซึ่งหมายความว่าเงื่อนไข RewriteCond %{HTTP_REFERER} !^$ จะอนุญาต Request เหล่านั้นผ่านโดยอัตโนมัติ แต่หากมีปัญหาให้ทดสอบโดยใช้ Facebook Debugger (developers.facebook.com/tools/debug) หรือ Twitter Card Validator เพื่อตรวจสอบว่ารูปภาพแสดงผลถูกต้องหรือไม่

หากพบว่า Bot ถูกบล็อก ให้เพิ่มเงื่อนไขพิเศษใน .htaccess เพื่อตรวจสอบ User-Agent แทน Referer:

RewriteCond %{HTTP_USER_AGENT} !(facebookexternalhit|Twitterbot|LinkedInBot|WhatsApp) [NC]

เพิ่มบรรทัดนี้ก่อน RewriteRule ใน Block Hotlink Protection เพื่อให้ Bot เหล่านี้ผ่านได้ โดยไม่กระทบการป้องกัน Hotlink จากเว็บไซต์อื่น

Hosting ปลอดภัย ด้วย AsiaGB

Hosting SSD พร้อมฟีเจอร์ความปลอดภัยครบ ทั้ง SSL ฟรี, Hotlink Protection, Backup อัตโนมัติ เริ่มต้นเพียง 500 บาท/ปี

ดูแพ็กเกจ Hosting