• June 18, 2026

    สมมติว่าลูกค้ากรอกชื่อและเบอร์โทรผ่านแล้ว โค้ดส่งต่อหน้าไปยังหน้าแสดงผลประกันภัย ต้องระวังอย่าให้ URL เป็นแบบนี้

    ❌ https://vir9.com/view.php?id=12 หรือ ?phone=0812345678

    ให้เก็บสถานะการเข้าระบบไว้ใน $_SESSION ของ PHP เท่านั้น และดึงข้อมูลจากไฟล์ JSON มาแสดงเฉพาะส่วนของ Session นั้นๆ ห้ามส่งค่าอ้างอิงส่วนบุคคลผ่าน URL

    วิธีแก้

    พอเราเปลี่ยนระบบความปลอดภัยมาเป็นแบบใช้ $_SESSION ของ PHP เต็มรูปแบบ (ห้ามส่งค่าอ้างอิงผ่าน URL) ผลลัพธ์ก็คือ “หน้าลิงก์ทางเข้าของลูกค้าทุกคนจะเป็น URL ตัวเดียวกันเป๊ะๆ ทั่วประเทศ” เช่น

    https://vir9.com/index.html (หรือหน้า index6.html ที่เปิดใช้งาน)

    ลูกค้าทุกคนต้องกดเข้าลิงก์นี้เหมือนกันหมด แล้วไปพิมพ์กรอก “ชื่อจริง + เลขท้ายบัตร 4 หลัก” เอาเอง เพื่อสร้าง Session ฝั่งเซิร์ฟเวอร์ ระบบถึงจะยอมเปิดให้ดูหน้าประวัติสเต็ป 3 สีของคนๆ นั้น

    แต่ถ้าถามว่า “แล้วเราจะหมดสิทธิ์ทำลิงก์ส่งให้ลูกค้ากดทีเดียวแล้วเด้งเข้าหน้าตัวเองแบบอัตโนมัติเลยใช่ไหม?” คำตอบคือ “ยังสามารถทำได้อยู่ครับพี่! แต่ต้องใช้เทคนิคพิเศษนิดหน่อย” เพื่อให้เกิดความสะดวกกับลูกค้า (ไม่ต้องมานั่งพิมพ์เองทุกครั้ง) แต่ในขณะเดียวกันก็ยังปลอดภัย 100% ตามกฎระเบียบ

    แนวทางที่ 1: ใช้ “ระบบลิงก์ผ่านรหัสตั๋วชั่วคราว” (Secure Token Link) – แนะนำวิธีนี้

    แทนที่เราจะส่งเบอร์โทรหรือส่งข้อมูลดิบไปบน URL ซึ่งอันตราย เราจะเปลี่ยนไปส่ง “รหัสตั๋วสุ่มชั่วคราว (Token)” ที่ระบบหลังบ้านสุ่มขึ้นมาให้ลูกค้าแต่ละคนแทนครับ

    • หน้าตาลิงก์ที่จะส่งให้ลูกค้า: https://vir9.com/index.html?ticket=abc123xyz
    • หลักการทำงาน:
      1. ในหน้าแอดมิน (admin6.php) ตอนที่พี่คีย์เพิ่มข้อมูลลูกค้า พี่อาจจะให้ระบบสุ่มรหัสภาษาอังกฤษผสมตัวเลขขึ้นมาสัก 10 หลัก (เช่น abc123xyz) ผูกไว้กับตัวเลขท้ายบัตรประชาชนของหมอคนนั้นใน db.json
      2. เวลาส่งลิงก์ให้หมอแต่ละท่าน ลิงก์จะมีรหัสตั๋ว (ticket) ห้อยท้ายไม่ซ้ำกันเลย
      3. พอหมอกดลิงก์นี้ปุ๊บ โค้ด JavaScript หน้าบ้านจะจับค่าตั๋วนี้ส่งไปให้ api.php ตรวจสอบ
      4. ถ้า api.php เช็กใน db.json แล้วพบว่าตั๋วนี้ถูกต้องและตรงกับคุณหมอท่านนี้ ตัว api.php จะทำหน้าที่ “สร้าง $_SESSION ให้คุณหมอคนนั้นอัตโนมัติทันที” แล้วเคลียร์หน้าเว็บให้แสดงตาราง 3 สีเลย โดยที่คุณหมอ ไม่ต้องกรอกชื่อหรือเลขท้ายบัตรเลยแม้แต่ตัวเดียวครับ
    • ทำไมวิธีนี้ถึงปลอดภัย? เพราะคนนอกแกะรหัสตั๋วสุ่มนี้ไม่ได้ และใน URL ไม่มีข้อมูลส่วนตัว (ชื่อ/เบอร์โทร/เลขบัตร) หลุดออกไปเลยครับ

    แนวทางที่ 2: การใช้ความสามารถของ PWA (สร้างแอปไว้บนมือถือลูกค้า)

    เนื่องจากหน้าบ้านตัวล่าสุดของพี่ มีระบบ PWA (Progressive Web App) ที่กดติดตั้งลงหน้าจอมือถือเป็นแอปได้อยู่แล้ว เราสามารถใช้ประโยชน์จากระบบนี้ร่วมกับระบบเบราว์เซอร์ได้ครับ:

    • หลักการทำงาน: 1. ครั้งแรกสุด พี่ส่งลิงก์รวมให้ลูกค้าเข้าปกติ แล้วให้ลูกค้ากรอก “ชื่อจริง + เลขท้ายบัตร 4 หลัก” เพื่อเข้าสู่ระบบครั้งแรก 2. ตอนที่ลูกค้าล็อกอินผ่านแล้ว ให้ JavaScript ฝั่งหน้าบ้านสั่งบันทึกสถานะไว้ในความจำของมือถือที่เรียกว่า localStorage 3. ให้ลูกค้ากด “ติดตั้งแอป (Add to Home Screen)” ไว้บนจอมือถือ 4. หลังจากนั้น ลูกค้าไม่ต้องกดลิงก์อะไรอีกเลยครับ เวลาจะเช็กสถานะประกันภัย แค่กดเปิดไอคอนแอปบนหน้าจอมือถือ โค้ดหน้าบ้านจะไปอ่านคีย์ที่เคยจำไว้ใน localStorage แล้วล็อกอินสร้าง Session ให้ลูกค้าเข้าดูตารางสีได้เองทันทีใน 1 วินาทีครับ

    👨‍💻 สรุปคำแนะนำ

    • ถ้าเน้นความสะดวกรวดเร็วแบบ “ส่งทางไลน์/SMS ให้ลูกค้ากดครั้งเดียวเข้าได้เลยทันทีไม่ต้องพิมพ์” ให้เพิ่มระบบ แนวทางที่ 1 (Secure Token) เข้าไปในโค้ด
    • ถ้าเน้นให้ลูกค้าเข้ามาติดตามสถานะบ่อยๆ ตลอดอายุสัญญา แนะนำให้ผลักดัน แนวทางที่ 2 (ให้ลูกค้ากดติดตั้งแอป PWA) ครับ เพราะทำครั้งเดียวจบ สบายยาวๆ ทั้งคนขายและคนซื้อ


เวอไนน์ไอคอร์ส

ประหยัดเวลากว่า 100 เท่า!






เวอไนน์เว็บไซต์⚡️
สร้างเว็บไซต์ ดูแลเว็บไซต์

Categories


Uncategorized