
หากเว็บไซต์ของคุณมีรูปภาพที่น่าสนใจ มีโอกาสที่เว็บไซต์อื่นจะนำ 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 สร้างปัญหาให้เจ้าของเว็บไซต์หลายด้าน:
- Bandwidth หมดเร็ว — Bandwidth ถูกใช้โดยเว็บไซต์อื่น แต่คุณเป็นคนจ่ายค่าใช้จ่าย
- เว็บช้าลง — Server ต้องรับ Request เพิ่มจากเว็บอื่น ทำให้ทรัพยากรลดลง
- ค่าใช้จ่ายสูงขึ้น — หาก Hosting คิดค่า Bandwidth เกินก็ต้องจ่ายเพิ่ม
- ละเมิดลิขสิทธิ์ — เนื้อหาของคุณถูกนำไปแสดงบนเว็บอื่นโดยไม่ได้รับอนุญาต
วิธีเปิด Hotlink Protection ใน DirectAdmin ทีละขั้น
- เข้าสู่ระบบ DirectAdmin แล้วไปที่หมวด Advanced Features
- คลิก Hotlink Protection
- เลือกโดเมนที่ต้องการเปิดใช้งานในช่อง Domain
- คลิกปุ่ม Enable Hotlink Protection เพื่อเปิดใช้งาน
- กรอก URL ของเว็บไซต์ตัวเองในส่วน URLs to Allow (ต้องใส่ไว้เสมอ มิฉะนั้นเว็บตัวเองก็จะถูก Block)
- กรอกนามสกุลไฟล์ที่ต้องการป้องกันในส่วน Extensions to Protect
- คลิก Save
กำหนดนามสกุลไฟล์ที่ป้องกัน
โดยทั่วไปนามสกุลไฟล์ที่ควรป้องกันคือไฟล์ที่มีขนาดใหญ่หรือมีคุณค่าทางทรัพย์สินทางปัญญา:
- รูปภาพ: jpg, jpeg, png, gif, webp, svg
- เอกสาร: pdf
- มีเดีย: mp4, mp3 (ถ้ามี)
ใน DirectAdmin ให้กรอกนามสกุลไฟล์คั่นด้วย | เช่น jpg|jpeg|png|gif|webp|pdf โดยไม่ต้องมีจุดนำหน้า
Whitelist: อนุญาต URL บางเว็บไซต์
มีบางกรณีที่คุณต้องการอนุญาตให้เว็บไซต์บางแห่งสามารถ Hotlink ไฟล์จากเซิร์ฟเวอร์ของคุณได้ เช่น เว็บไซต์พาร์ทเนอร์หรือ Google Images การเพิ่ม Whitelist ทำได้ดังนี้:
- ในส่วน URLs to Allow กรอก URL ของเว็บไซต์ที่ต้องการอนุญาต
- ใส่ทั้ง URL แบบ http:// และ https:// สำหรับแต่ละเว็บ
- URL ของเว็บไซต์ตัวเองต้องอยู่ใน Whitelist เสมอ
ตัวอย่าง URLs ที่ควรใส่ใน Whitelist: https://www.yoursite.com, http://www.yoursite.com
สำคัญ: หากเว็บตัวเองใช้ CDN (เช่น Cloudflare, BunnyCDN) ต้อง Whitelist URL ของ CDN ด้วย มิฉะนั้น CDN จะไม่สามารถโหลดไฟล์จากเซิร์ฟเวอร์ต้นทางของคุณได้ และรูปภาพบนเว็บจะแสดงไม่ออก
วิธีปิด Hotlink Protection
หากต้องการปิด Hotlink Protection ชั่วคราวหรือถาวร:
- กลับไปที่หน้า Hotlink Protection ใน DirectAdmin
- เลือกโดเมนที่ต้องการ
- คลิกปุ่ม Disable Hotlink Protection
- คลิก Save เพื่อบันทึก
การปิด Hotlink Protection จะทำให้ทุกเว็บไซต์สามารถโหลดไฟล์จากเซิร์ฟเวอร์ของคุณได้อีกครั้ง
Hotlink คืออะไรและทำไมถึงเป็นการขโมย Bandwidth
Hotlinking หรือที่รู้จักในชื่อ "Bandwidth Theft" คือการที่เว็บไซต์อื่นนำ URL ของไฟล์บนเซิร์ฟเวอร์คุณไปฝังในหน้าเว็บของตนเองโดยตรง ผลก็คือทุกครั้งที่มีผู้เข้าชมเว็บนั้น เซิร์ฟเวอร์ของคุณต้องส่งไฟล์ออกไปให้ แต่คุณไม่ได้รับประโยชน์ใดๆ เลยจากการเข้าชมนั้น
ผลกระทบที่ร้ายแรงของ Hotlinking มีหลายด้านดังนี้:
- ค่าใช้จ่าย Bandwidth พุ่งสูงขึ้น — Hosting Plans ส่วนใหญ่คิดค่า Bandwidth ตามปริมาณจริง ถ้ามีเว็บอื่นดึงไฟล์คุณตลอดเวลา บิลก็จะสูงขึ้นโดยไม่มีสาเหตุจากผู้ชมของคุณเอง
- เซิร์ฟเวอร์ช้าลง — Request ที่เพิ่มขึ้นจากภายนอกทำให้ CPU และ Memory ของเซิร์ฟเวอร์ถูกใช้งานหนัก ส่งผลให้หน้าเว็บของคุณเองโหลดช้าลงด้วย
- ความเสี่ยงทางกฎหมาย — รูปภาพหรือไฟล์ที่มีลิขสิทธิ์ถูกนำไปแสดงบนเว็บอื่นโดยไม่ได้รับอนุญาต อาจเป็นประเด็นด้านลิขสิทธิ์ได้ แม้ว่าคุณจะเป็นเจ้าของไฟล์นั้น เพราะการที่ไฟล์ปรากฏบนเว็บอื่นอาจทำให้เข้าใจผิดเรื่องความเป็นเจ้าของ
- ข้อมูลสถิติผิดพลาด — Bandwidth ที่ถูกใช้โดยผู้ Hotlink จะปนอยู่ในรายงานของคุณ ทำให้ตัวเลขการใช้งานไม่ตรงกับผู้เข้าชมจริง
- ความเสี่ยงด้านความปลอดภัย — หากผู้ไม่หวังดี Hotlink ไฟล์ขนาดใหญ่จำนวนมาก อาจทำให้เซิร์ฟเวอร์ถึงขั้น Overload ได้
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]
คำอธิบายแต่ละบรรทัด:
RewriteCond %{HTTP_REFERER} !^$— อนุญาต Request ที่ไม่มี Referer (เช่น พิมพ์ URL โดยตรง หรือ Bot)RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yoursite\.com— อนุญาต Request จากโดเมนของคุณเอง ทั้ง http และ https รวมถึง wwwRewriteRule \.(jpg|jpeg|...)$ - [F,L]— บล็อก Request ที่ไม่ตรงเงื่อนไขด้วยการตอบ HTTP 403 Forbidden
ข้อดีของการตั้งผ่าน .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:
https://www.google.comhttps://images.google.comhttps://google.com
Facebook Link Preview
เมื่อมีการแชร์ลิงก์บน Facebook โปรแกรมรวบรวมข้อมูล (Crawler) ของ Facebook จะเข้าถึงรูปภาพ OG Image ของหน้านั้น หาก Hotlink Protection บล็อก Request ดังกล่าว การแสดงตัวอย่างลิงก์บน Facebook จะไม่มีรูปภาพ ให้เพิ่ม:
https://www.facebook.comhttps://facebook.com
อย่างไรก็ตาม Facebook Crawler มักส่ง Request โดยไม่มี Referer หรือมี User-Agent ที่บอกว่าเป็น Bot ซึ่งโดยทั่วไป Apache จะอนุญาต Request ที่ไม่มี Referer ผ่านอัตโนมัติอยู่แล้ว
เว็บไซต์ตัวเองและ CDN
นี่คือรายการที่สำคัญที่สุด เพราะหากขาดไป เว็บของคุณเองจะโหลดรูปภาพไม่ได้ ให้เพิ่มทุก URL ที่ใช้งานจริง:
https://yoursite.comhttp://yoursite.comhttps://www.yoursite.comhttp://www.yoursite.com- URL ของ CDN ถ้ามี เช่น
https://cdn.yoursite.com
ผลกระทบของ 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