Website
Cookie คืออะไร และเก็บข้อมูลประเภทไหนบ้าง?
Cookie คือข้อมูลเล็ก ๆ ที่เว็บไซต์ส่งมาจากเซิร์ฟเวอร์ เก็บไว้ในเครื่องคอมพิวเตอร์หรือสมาร์ตโฟนของผู้เยี่ยมชม เมื่อผู้ใช้เข้าเยี่ยมชมเว็บไซต์ครั้งต่อไป เบราว์เซอร์จะส่ง Cookie นั้นกลับไปยังเว็บไซต์เพื่อระบุตัวตนของผู้ใช้ Cookie ถูกใช้เพื่อหลายวัตถุประสงค์ เช่น:
- Functional Cookie — ช่วยให้เว็บไซต์ทำงาน เช่น เก็บการเข้าสู่ระบบ (Login Session) หรือสินค้าที่ใส่ในตะกร้าซื้อ
- Preference Cookie — จดจำการตั้งค่าของผู้ใช้ เช่น ภาษา, ธีมสีเว็บ, ขนาดฟอนต์
- Analytics Cookie — ติดตามพฤติกรรมการใช้เว็บไซต์ เพื่อวิเคราะห์ว่าผู้เยี่ยมชมใช้ส่วนไหนมากที่สุด
- Advertising/Marketing Cookie — ใช้สำหรับแสดงโฆษณา เลือกเป้าหมายผู้เยี่ยมชม ติดตามการกดลิงก์โฆษณา
ทำไมต้องมี Cookie Consent Banner?
ตามกฎหมาย PDPA (Personal Data Protection Act) ของไทยและ GDPR (General Data Protection Regulation) ของยุโรป เว็บไซต์ต้องขอความยินยอมจากผู้เยี่ยมชมก่อนการเก็บ Cookie ใด ๆ ที่ไม่ใช่ Functional Cookie (ที่จำเป็นต่อการทำงาน) กฎหมายเหล่านี้มีจุดประสงค์เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ปกป้องข้อมูลส่วนบุคคล และให้ผู้ใช้มีสิทธิในการควบคุมข้อมูลของตนเอง
หากเว็บไซต์ของคุณเก็บ Cookie ที่ไม่จำเป็นโดยไม่ขอความยินยอม คุณอาจเผชิญกับปรับทางกฎหมาย (Fine) หรือการร้องเรียนของผู้ใช้ เพื่อหลีกเลี่ยงปัญหานี้ ต้องติดตั้ง Cookie Consent Banner บนเว็บไซต์ของคุณ
วิธีติดตั้ง Cookie Consent Banner โดยไม่ใช้ Plugin
สำหรับเว็บไซต์ WordPress บนเว็บโฮสติ้ง cPanel คุณสามารถใช้ Plugin เช่น CookieBot, Cookie Notice, Termly หรือแม้แต่สร้าง Script ง่าย ๆ ด้วย HTML และ JavaScript ดังนี้:
วิธีที่ 1: ใช้ Plugin Cookie Consent (ง่ายที่สุด)
ถ้าใช้ WordPress:
- Login เข้า WordPress Dashboard
- ไปที่ Plugins → Add New
- ค้นหา "Cookie Notice" หรือ "CookieBot"
- คลิก Install และ Activate
- ตั้งค่า Cookie Banner ให้แสดงเมื่อผู้ใช้เข้าเว็บไซต์ครั้งแรก
- เลือก Cookie ประเภทไหนที่ต้องขอความยินยอม (Analytics, Marketing)
- Save การตั้งค่า
วิธีที่ 2: ใส่ Code Script ด้วยมือใน Header
สำหรับเว็บไซต์ที่ไม่ใช้ WordPress หรือต้องการควบคุมมากขึ้น คุณสามารถเพิ่ม Script ด้วยมือได้:
<div id="cookie-consent-banner" style="position:fixed;bottom:0;left:0;right:0;background:#222;color:#fff;padding:15px;text-align:center;z-index:1000;font-size:14px;">
<p>เว็บไซต์นี้ใช้ Cookie เพื่อให้ประสบการณ์ของคุณดีขึ้น โปรดยอมรับหรือปฏิเสธ</p>
<button id="accept-cookies" style="background:#4CAF50;color:#fff;padding:8px 15px;border:none;margin:0 5px;cursor:pointer;">ยอมรับ</button>
<button id="reject-cookies" style="background:#f44336;color:#fff;padding:8px 15px;border:none;margin:0 5px;cursor:pointer;">ปฏิเสธ</button>
</div>
<script>
// ตรวจสอบว่า Cookie ยอมรับ/ปฏิเสธแล้วหรือยัง
if (!localStorage.getItem('cookieConsent')) {
document.getElementById('cookie-consent-banner').style.display = 'block';
} else {
document.getElementById('cookie-consent-banner').style.display = 'none';
}
// กำหนดให้คลิก "ยอมรับ" เก็บค่า localStorage
document.getElementById('accept-cookies').addEventListener('click', function() {
localStorage.setItem('cookieConsent', 'accepted');
document.getElementById('cookie-consent-banner').style.display = 'none';
});
// กำหนดให้คลิก "ปฏิเสธ" เก็บค่า localStorage
document.getElementById('reject-cookies').addEventListener('click', function() {
localStorage.setItem('cookieConsent', 'rejected');
document.getElementById('cookie-consent-banner').style.display = 'none';
});
</script>
วิธีที่ 3: ติดตั้ง Script ใน .htaccess (สำหรับ Hosting ที่ไม่รองรับ PHP Header)
บาง Hosting Provider รองรับการเพิ่ม HTTP Header ผ่าน .htaccess เพื่อบอกเบราว์เซอร์ว่าเว็บไซต์ใช้ Cookie:
<IfModule mod_headers.c>
Header set Set-Cookie "cookieConsent=notSet; Path=/; HttpOnly; SameSite=Strict"
</IfModule>
วิธีป้องกัน Cookie ที่ไม่ได้รับอนุญาต
เพื่อให้เว็บไซต์ของคุณปฏิบัติตามกฎหมาย PDPA/GDPR ทุกประการ ให้ปฏิบัติตามขั้นตอนต่อไปนี้:
- โหลด Analytics/Marketing Script ตามเงื่อนไข — Google Analytics, Facebook Pixel, หรือ Advertising Script อื่นควรโหลดเฉพาะเมื่อผู้ใช้ยอมรับ Cookie นั้น ห้ามโหลดโดยอัตโนมัติ
- เชื่อมโยงกับหน้า Privacy Policy — ใน Cookie Banner ต้องมีลิงก์ไปยังหน้า Privacy Policy ของเว็บไซต์ เพื่ออธิบายชนิดของ Cookie และวัตถุประสงค์
- ให้ผู้ใช้เปลี่ยนแปลงการตั้งค่าได้ — ห้ามให้ผู้ใช้เห็น Cookie Banner แค่ครั้งเดียว เพิ่มปุ่มในเมนู Settings เพื่อให้ผู้ใช้เปลี่ยนแปลงการตั้งค่า Cookie ได้เลื่อม
- บันทึกเวลาที่ได้รับความยินยอม — ควรบันทึก Timestamp และวิธีที่ผู้ใช้ยอมรับเพื่อเป็นหลักฐานว่าขอความยินยอมแล้ว
ตรวจสอบว่า Cookie Consent ทำงานถูกต้อง
หลังติดตั้ง Cookie Consent Banner ให้ทดสอบด้วยขั้นตอนต่อไปนี้:
# 1. เปิด DevTools (F12) ไปที่ Application tab
# 2. ดู Cookies section → ตรวจสอบว่ามี Cookie ของเว็บไซต์อยู่
# 3. ใช้ Network tab เพื่อตรวจสอบว่า Google Analytics โหลดหลังจากคลิก "ยอมรับ" หรือไม่
# ค้นหา "google-analytics.com" หรือ "gtag" ใน Network tab
# 4. ลบ Cookie ทั้งหมดแล้วรีเฟรชหน้า Cookie Banner ต้องแสดงขึ้นมาใหม่
# 5. ทดสอบ Privacy Mode / Incognito Mode Cookie Banner ต้องแสดงทุกครั้ง
แก้ปัญหาที่พบบ่อย
Error: "Cookie Banner ไม่แสดงขึ้น"
เกิดจากการบันทึก localStorage ไม่ถูกต้องหรือ localStorage ถูกปิดใช้งาน วิธีแก้: ลองใช้ Session Storage หรือ Cookies แทน localStorage เพื่อบันทึกการตั้งค่า
Error: "Google Analytics ยังคงโหลดแม้ว่าผู้ใช้ปฏิเสธ Cookie"
ปัญหา: Google Analytics Script ถูกใส่แบบ Async ซึ่งโหลดโดยอัตโนมัติ แม้ว่าผู้ใช้ยังไม่ยอมรับ Cookie วิธีแก้: โหลด Google Analytics Script เฉพาะเมื่อผู้ใช้ยอมรับ หรือใช้ Google Analytics 4 Consent Mode ที่สามารถตั้งค่า consent_mode ได้
Error: "Privacy Policy ไม่มี หรือลิงก์ในหน้า Privacy Policy ถูกลบออก"
กฎหมาย PDPA กำหนดให้เว็บไซต์ต้องมีหน้า Privacy Policy ที่ชัดเจน วิธีแก้: สร้างหน้า Privacy Policy ใน WordPress (สร้าง Page ใหม่) อธิบายชนิดของ Cookie ที่ใช้ วัตถุประสงค์ และวิธีเก็บข้อมูลผู้ใช้ ใส่ลิงก์ไปยังหน้า Privacy Policy ในทุกที่ที่แสดง Cookie Banner
Error: "Plugin Cookie Consent ขัดแย้งกับ Plugin อื่น"
บางครั้ง Cookie Plugin ขัดแย้งกับ Caching Plugin หรือ SEO Plugin อื่น วิธีแก้: ปิดใช้งาน Cookie Plugin ชั่วคราว แล้วเปิดใช้ Plugin อื่นทีละตัว เพื่อหาว่า Plugin ไหนขัดแย้ง จากนั้นค้นหา Update ใหม่ของ Plugin ทั้งสอง หรือติดต่อ Support ของ Plugin
Error: "Cookie Banner ขึ้นบนทุกหน้า แม้ว่าผู้ใช้ยอมรับไปแล้ว"
เกิดจาก localStorage ไม่บันทึกค่า หรือ localStorage ถูกล้าง วิธีแก้: ตรวจสอบว่า DevTools ไม่ได้ตั้งค่าให้ล้าง localStorage ทุกครั้งที่ปิดเบราว์เซอร์ (ถ้ากำหนด) ขณะทดสอบ ให้เพลี่ยว่าจะใช้ Cookies แทน localStorage ที่มีอายุยาวกว่า
คำถามที่พบบ่อย
Q: Functional Cookie (ที่จำเป็นต่อการทำงาน) ต้องขอความยินยอมหรือไม่?
A: ไม่ต้อง Functional Cookie ที่จำเป็นต่อการทำงานของเว็บไซต์ เช่น Session Cookie สำหรับ Login CSRF Token หรือสินค้าในตะกร้า ได้รับการยกเว้น ห้ามขอความยินยอมสำหรับ Cookie เหล่านี้ แต่ควรอธิบายในหน้า Privacy Policy ว่าใช้งานเพื่ออะไร
Q: ถ้าไม่มี Cookie Consent Banner จะเกิดอะไร?
A: เว็บไซต์ของคุณอาจถูกถูกกฎหมาย PDPA/GDPR นอกจากนี้ ผู้ใช้ยังสามารถร้องเรียนหรือฟ้องร้องขอค่าเสียหาย บ้างองค์กรจำเพาะก็มีการตรวจสอบเว็บไซต์ไทยและส่งอ้างอิงกระบวนการ PDPA หากปะติดปะตัวในการเก็บ Cookie ที่ไม่ได้รับอนุญาต
Q: ข้อมูลใน Cookie สามารถนำไปใช้ในอนาคตหรือต้องลบทิ้งหลังจากระยะเวลาหนึ่ง?
A: ตามกฎหมาย PDPA ต้องลบข้อมูลเมื่อไม่จำเป็นต่อวัตถุประสงค์ดั้งเดิมแล้ว สำหรับ Analytics Cookie ควรตั้ง Expiry Date (เช่น 2 ปี) เมื่อหมดอายุเบราว์เซอร์จะลบเอง สำหรับ Marketing Cookie ควรให้ผู้ใช้สามารถลบหรือปฏิเสธได้ตลอดเวลา
ก่อนเปลี่ยนแปลงค่า DNS หรือโดเมนใดๆ แนะนำให้ตรวจสอบสุขภาพโดเมนก่อนด้วยเครื่องมือฟรีอย่าง dnsxray.com เพื่อเช็ค DNS Record, SSL และ Blacklist ในที่เดียว