สั่ง AI ซ่อนหน้าแอดมินที่ frontend แล้วคนยังเข้าได้ เพราะเปลี่ยนแค่สิ่งที่เห็น ส่วนการห้ามเข้าต้องทำที่ backend
ซ่อนปุ่มไม่เท่ากับห้ามเข้า เพราะ frontend รันบนเครื่องผู้ใช้ ส่วน backend รันบนเครื่องเรา อ่านจบแล้วจะรู้ว่าควรสั่ง AI ว่าอะไรแทนคำว่าซ่อน

"ซ่อนหน้าแอดมินให้หน่อย" คุณพิมพ์สั่ง AI ไปแบบนี้ แล้วมันก็จัดการให้ตามสั่งจริงๆ ปุ่มหายไปจากเมนู ลิงก์ไม่โผล่มาให้เห็น หน้าเว็บดูเรียบร้อยสะอาดตาเหมือนไม่เคยมีหน้านั้นอยู่
แต่แล้ววันหนึ่ง กลับมีคนทักว่าเขาเปิดเข้าไปหน้านั้นได้ หรือข้อมูลสำคัญที่คุณคิดว่าไม่มีใครเห็น กลับมีคนเปิดดูได้หน้าตาเฉย
สิ่งที่เกิดขึ้นไม่ใช่ว่า AI ทำงานพลาด แต่มันทำตามคำสั่งของคุณแบบตรงตัวเป๊ะต่างหาก เพราะในโลกของการเขียนเว็บ คำว่า "ซ่อน" กับ "ห้ามเข้า" คือคนละเรื่องกันเลย
เส้นแบ่งสำคัญอยู่ที่ว่า โค้ดส่วนนั้นรันอยู่บนเครื่องของใคร ฝั่งที่รันบนเครื่องของคนเปิดเว็บ เราเรียกว่า frontend ส่วนฝั่งที่รันบนเซิร์ฟเวอร์ของเจ้าของระบบ เราเรียกว่า backend และจุดนี้นี่เองที่ตัดสินว่า อะไรคือการป้องกันได้จริง และอะไรเป็นแค่การบังตาไว้เฉยๆ
ทุกอย่างใน frontend มาอยู่บนเครื่องผู้ใช้หมดแล้ว

เวลาใครเปิดเว็บของคุณ เบราว์เซอร์จะดาวน์โหลดโค้ดและไฟล์ทั้งหมดของหน้านั้นมาไว้ในเครื่องผู้ใช้ก่อน แล้วค่อยแสดงเป็นหน้าเว็บที่เราเห็น
สิ่งที่ดาวน์โหลดลงไปด้วยคือทุกอย่างที่เขียนไว้ในไฟล์ ทั้งปุ่มที่คุณสั่งซ่อน เมนูที่ปิดการแสดงผล ไปจนถึง URL หรือที่อยู่ของหน้าแอดมิน คำสั่ง "ซ่อน" ทำงานหลังจากที่ทุกอย่างโหลดลงเครื่องผู้ใช้ไปแล้ว มันแค่บอกเบราว์เซอร์ว่า "อย่าแสดงสิ่งนี้ขึ้นมาบนจอ" แต่ไฟล์ โค้ด และข้อมูลทุกชิ้นยังคงอยู่ในเครื่องของผู้ใช้ครบถ้วน
คนที่อยากดูก็ไม่จำเป็นต้องมีความรู้เรื่องแฮก แค่คลิกขวาบนหน้าเว็บแล้วเลือกคำสั่งดูโค้ดอย่าง View Page Source หรือเปิด DevTools ซึ่งเป็นเครื่องมือดูโค้ดที่ติดมากับเบราว์เซอร์ทุกตัว จากนั้นก็จะเห็นโค้ดทั้งหมดที่โหลดลงมา รวมถึง URL ของหน้าลับที่คุณไม่อยากให้ใครรู้ พอรู้ URL แล้ว แค่พิมพ์ลงในช่องที่อยู่เว็บตรงๆ ก็เข้าหน้านั้นได้ทันที โดยไม่ต้องง้อปุ่มบนหน้าจอเลยสักนิด
จุดนี้เป็นเรื่องที่เข้าใจผิดกันได้ง่ายมาก เพราะ "ซ่อนปุ่มสำเร็จ" กับ "เข้าใช้งานไม่ได้" ฟังดูเผินๆ เหมือนจะได้ผลลัพธ์เดียวกัน แต่ในความเป็นจริง:
- ซ่อนปุ่ม (frontend) คือหน้าเว็บเลือกที่จะไม่แสดงปุ่ม แต่ประตูยังเปิดอ้าอยู่ ใครรู้ทางก็เดินเข้าได้
- ห้ามเข้า (backend) คือระบบมีคนเฝ้าประตูคอยตรวจสิทธิ์ และพร้อมจะปฏิเสธคนที่ไม่มีสิทธิ์ ต่อให้เขาพิมพ์ URL เข้ามาถูกทางก็ตาม
เรื่องข้อมูลก็เจอปัญหาเดียวกัน ถ้าหน้าเว็บขอข้อมูลจากเซิร์ฟเวอร์มาทั้งก้อน แล้วค่อยเขียนโค้ดบน frontend เพื่อกรองให้แสดงเฉพาะแถวที่ผู้ใช้ควรเห็น ตอนที่โค้ดตัวนั้นเริ่มกรอง ข้อมูลทั้งก้อนก็วางอยู่ในเครื่องผู้ใช้แล้ว ทั้งเงินเดือนพนักงาน ต้นทุนสินค้า หรือเบอร์โทรลูกค้า ข้อมูลที่ส่งมาถึง frontend ย่อมอยู่บนเครื่องของผู้ใช้ เรื่องรหัสลับเชื่อมต่อระบบอย่าง API key ที่หลุดเพราะ AI ใส่ไว้ในโค้ด ก็เกิดจากสาเหตุเดียวกัน คือของที่เป็นความลับและควรอยู่ฝั่งเรา ดันหลุดออกไปอยู่บนเครื่องของคนอื่น
ฝั่ง backend ส่งกลับเฉพาะคำตอบให้ผู้ใช้

โค้ดที่รันบนเซิร์ฟเวอร์ของเรา หรือฝั่ง backend ทำงานต่างจาก frontend โดยสิ้นเชิง ผู้ใช้จะไม่ได้ตัวโค้ดหรือตรรกะหลังบ้านมาไว้ในเครื่อง ทำได้เพียงส่งคำขอเข้ามา แล้วรับผลลัพธ์เท่าที่เรายอมส่งกลับ ส่วนเซิร์ฟเวอร์จะประมวลผลหรือตรวจสอบอะไรบ้าง ผู้ใช้ไม่มีทางเปิดดูได้เลย เพราะโค้ดและข้อมูลส่วนนั้นไม่เคยหลุดออกจากเซิร์ฟเวอร์ของเรา
ลองนึกภาพร้านค้าที่มีเคาน์เตอร์กั้น:
- ของที่วางหน้าเคาน์เตอร์ (frontend): ลูกค้าสามารถหยิบขึ้นมาดูได้ทุกชิ้น ต่อให้เอาผ้ามาคลุมไว้ ลูกค้าก็แค่เปิดผ้าออกดูได้อยู่ดี
- ของที่วางหลังเคาน์เตอร์ (backend): ลูกค้ามองไม่เห็นและหยิบเองไม่ได้ ถ้าอยากได้ต้องเอ่ยปากขอ แล้วพนักงานหลังเคาน์เตอร์จะเป็นคนตัดสินใจว่าจะหยิบให้หรือไม่
ผ้าคลุมกับพนักงานที่คอยตรวจสิทธิ์หลังเคาน์เตอร์ไม่ใช่สิ่งเดียวกัน สิ่งที่บอกว่าคุณกำลังใช้วิธีไหนอยู่ ก็คือของชิ้นนั้นวางอยู่ตรงไหน
การซ่อนจึงเป็นเรื่องของหน้าตา ส่วนการห้ามเข้าเป็นเรื่องของการตรวจสิทธิ์ ซึ่งขึ้นอยู่กับว่าโค้ดที่ตัดสินใจนั้นรันอยู่ฝั่งไหน
ถ้าฝั่ง backend ไม่มีโค้ดส่วนไหนที่คอยถามว่า "คนที่ขอเข้ามาคนนี้เป็นแอดมินจริงไหม" ระบบก็ไม่มีทางปฏิเสธเขาได้เลย การซ่อนปุ่มไม่ได้ทำหน้าที่ปฏิเสธใคร มันแค่ไม่ได้โชว์ปุ่มชวนให้กด และคนที่ตั้งใจจะเข้าหน้านั้นจริงๆ เขาไม่จำเป็นต้องรอให้มีปุ่มมาชวน
ไม่มี error สีแดงขึ้นมาให้เห็น AI เลยไม่ทัก
สำหรับ AI แล้ว คำสั่ง "ซ่อนปุ่มนี้" ชัดเจนและทำได้จริง พอคุณสั่ง มันก็เขียนโค้ดซ่อนปุ่มให้ตามที่ขอ หน้าเว็บยังทำงานได้ตามปกติ ไม่มีอะไรพัง และไม่มี error สีแดงเด้งขึ้นมาเตือนว่าคุณกำลังเข้าใจอะไรผิด
สัญญาณเตือนที่เราคุ้นเคยกันเวลาเขียนโค้ดคือข้อความ error ที่ระบบจะฟ้องเมื่อมีอะไรทำงานไม่สำเร็จ แต่กรณีนี้จะไม่มี error ให้เห็นเลย เพราะในเชิงเทคนิคไม่มีอะไรผิดพลาด AI ทำตามคำสั่งได้สมบูรณ์แบบ สิ่งที่ไม่ตรงกันคือ "ความต้องการในหัวของคุณ" กับ "คำสั่งที่คุณพิมพ์ออกไป" ซึ่งช่องว่างตรงนี้ไม่มีทางโผล่มาเป็นข้อความเตือนบนหน้าจอ
ผลของการมองข้ามจุดนี้คือ คุณจะไม่มีทางรู้ตัวเลยจนกว่าจะมีคนเปิดเข้าไปในหน้านั้นจริงๆ และในวันที่รู้ตัว ข้อมูลที่หลุดไปแล้วก็เรียกกลับคืนมาไม่ได้
ครั้งต่อไป ให้เช็กก่อนว่าโค้ดชิ้นนี้รันอยู่บนเครื่องใคร
มี 2 คำถามง่ายๆ ที่ใช้ถาม AI ได้ทุกครั้ง:
- โค้ดส่วนที่เพิ่งเขียนนี้รันบนเครื่องผู้ใช้ฝั่ง frontend หรือรันบนเซิร์ฟเวอร์ฝั่ง backend
- ถ้าผู้ใช้เปิดดูโค้ดของหน้าเว็บเอง เขาจะเห็นข้อมูลหรือ URL ส่วนนี้ไหม
คำถามแบบนี้ถามถึงข้อเท็จจริงของโค้ดที่ AI เพิ่งเขียน ไม่ใช่การให้มันเดาใจคุณ และคำตอบที่ได้จะบอกว่าสิ่งที่คุณสั่งไปเมื่อกี้ ไปตกอยู่ฝั่งไหน
อีกอย่างที่คุณปรับได้ทันทีคือ "วิธีสั่งงาน" ถ้าต้องการห้ามเข้าหรือจำกัดสิทธิ์ ให้ระบุถึงการตรวจสอบสิทธิ์ของฝั่งเซิร์ฟเวอร์เสมอ แทนที่จะพูดถึงสิ่งที่มองเห็นบนหน้าจอ:
| แทนที่จะสั่งฝั่ง frontend | ให้เปลี่ยนมาสั่งฝั่ง backend |
|---|---|
| ซ่อนปุ่มเข้าหน้าแอดมิน | ให้ฝั่งเซิร์ฟเวอร์ตรวจก่อนว่าคนที่ขอเปิดหน้าแอดมินเป็นแอดมินจริงไหม ถ้าไม่ใช่ให้ปฏิเสธคำขอตั้งแต่แรก |
| อย่าแสดงราคาต้นทุนในตาราง | อย่าส่งราคาต้นทุนมาที่หน้าเว็บตั้งแต่แรก ให้เซิร์ฟเวอร์ส่งมาเฉพาะข้อมูลที่ลูกค้ามีสิทธิ์ดูได้เท่านั้น |
| ซ่อนปุ่มลบ ถ้าไม่ใช่เจ้าของโพสต์ | ให้เซิร์ฟเวอร์ปฏิเสธคำสั่งลบ ถ้าคนที่ส่งคำขอไม่ใช่เจ้าของโพสต์ |
สังเกตว่าคำสั่งใหม่ไม่ได้ยาวขึ้นเท่าไร แต่มันชี้เป้าไปที่ฝั่ง backend ซึ่งมีอำนาจตัดสินใจจริง ไม่ใช่ฝั่ง frontend ที่ทำได้แค่แสดงผลหน้าจอ
แล้วคำว่า "ซ่อน" ยังจำเป็นต้องใช้อยู่ไหม คำตอบคือ ยังจำเป็นและควรใช้ควบคู่กัน เพราะการซ่อนปุ่มที่ผู้ใช้ไม่มีสิทธิ์เข้าถึง จะช่วยให้หน้าเว็บดูสะอาดตาและไม่งง ขอแค่จำไว้ว่าการซ่อนปุ่มเป็นแค่ผ้าคลุมที่วางทับของจริง ไม่ใช่การป้องกันเพียงอย่างเดียวที่มีอยู่
AI ย้ายโค้ดข้ามฝั่งให้ได้ แต่ไม่รู้ว่าอะไรเป็นความลับ
การย้ายโค้ดไปรันอีกฝั่งเป็นเรื่องที่ AI ทำได้สบายมาก แค่คุณบอกให้มันย้ายการตรวจสิทธิ์จาก frontend ไปไว้ที่ backend หรือบอกให้หยุดส่งข้อมูลบางคอลัมน์ออกมา มันก็ปรับโค้ดให้ได้
แต่สิ่งที่ AI ไม่มีทางรู้เอง คือบริบทในธุรกิจของคุณ ว่าข้อมูลไหนที่ลูกค้าห้ามเห็น ยอดขายเดือนนี้เป็นความลับเฉพาะผู้บริหารหรือเปิดให้ทุกคนในทีมดูได้ เบอร์โทรลูกค้าใครบ้างที่มีสิทธิ์เข้าถึง ความรู้เหล่านี้ไม่ได้มีอยู่ในโค้ด แต่อยู่กับคนที่เข้าใจธุรกิจ ซึ่งก็คือตัวคุณ
เรื่องนี้เชื่อมโยงกับประเด็นในบทความ ถ้า AI เขียนโค้ดได้หมดแล้ว เหลืออะไรให้คนฝึก คำตอบตรงนี้ชัดเจนมาก การตัดสินใจว่าอะไรเป็นความลับและใครควรมีสิทธิ์เข้าถึงอะไรยังคงเป็นหน้าที่ของมนุษย์ เพราะ AI มีหน้าที่เขียนโค้ดตามคำสั่ง ไม่ได้มีหน้าที่ตัดสินแทนเราว่าอะไรคือความลับของธุรกิจ
คำถามสำคัญที่ควรจำให้ขึ้นใจเวลาสร้างเว็บกับ AI จึงไม่ใช่ "จะซ่อนปุ่มยังไงให้เนียน" แต่เป็น "โค้ดชิ้นนี้กำลังทำงานอยู่บนเครื่องของใคร" เพราะฝั่งที่โค้ดรันอยู่เป็นตัวตัดสินว่าสิ่งที่คุณทำเป็นการป้องกันได้จริง หรือแค่บังตาไว้ชั่วคราว
ชอบเรื่องแนวนี้ มีอีบุ๊คฟรีให้อ่านต่อ
NotebookLM ฉบับเข้าใจง่าย โยนเอกสารให้ AI อ่าน แล้วได้สรุป พอดแคสต์ และคลังความรู้ส่วนตัว
กดสมัครแล้วเราจะส่งเทคนิค AI และของแจกใหม่ๆ ให้ทางอีเมล เลิกรับได้ตลอด
Claude Cowork · The Business Playbook

ฉบับภาษาไทย 15 บท เรียนรู้ผ่านโปรเจกต์จำลองต่อเนื่องทั้งเล่ม ตั้งแต่ตั้งค่า Workspace จัดการไฟล์ เชื่อมแอป ตั้งระบบอัตโนมัติ จนถึงสร้าง Plugin


