ตรวจลายเซ็น Webhook LINE (Signature) ฟรี
ใส่ Channel Secret, เนื้อหา Request Body และค่า x-line-signature ที่ได้รับ แล้วเครื่องมือจะคำนวณ HMAC-SHA256 ในเบราว์เซอร์และเทียบว่าลายเซ็นตรงกันหรือไม่
- ใช้ฟรี
- ไม่ต้องสมัคร
- ไม่ต้องกรอกอีเมล
- คำนวณในเบราว์เซอร์
Channel Secret ไม่ออกจากเบราว์เซอร์นี้ — การคำนวณ HMAC-SHA256 ทั้งหมดทำงานด้วย Web Crypto API ในเบราว์เซอร์ของคุณเท่านั้น ไม่มีการส่งค่าที่กรอกในหน้านี้ไปที่เซิร์ฟเวอร์ของ linli หรือที่อื่นใดทั้งสิ้น
กรอกให้ครบทั้ง 3 ช่องเพื่อเทียบลายเซ็น
ยืนยันลายเซ็นได้แล้ว ที่เหลือคือรับ Webhook อย่างมั่นใจ
linli รับ Webhook จาก LINE OA พร้อมตรวจลายเซ็นทุกครั้งก่อนประมวลผล เพื่อให้ Lead และ Event ที่เก็บเข้าระบบมาจาก LINE จริงเท่านั้น
เครื่องมือนี้ตรวจอะไร
ใส่ Channel Secret ของ LINE OA, เนื้อหา Request Body แบบดิบที่ได้รับ และค่าในหัว x-line-signature ที่แนบมากับ Request เครื่องมือจะคำนวณ HMAC-SHA256 ของ Body โดยใช้ Channel Secret เป็นคีย์ ทั้งหมดทำงานในเบราว์เซอร์ของคุณ แล้วเทียบผลลัพธ์กับค่าที่ได้รับว่าตรงกันหรือไม่
ถ้าค่าตรงกัน แปลว่า Request นั้นมาจาก LINE จริงและเนื้อหาไม่ถูกแก้ไขระหว่างทาง ถ้าไม่ตรงกัน เครื่องมือจะอธิบายสาเหตุที่เป็นไปได้ เช่น Body ถูกดัดแปลงก่อนคำนวณ (เช่นผ่าน JSON.parse แล้ว stringify ใหม่) หรือใช้ Channel Secret ผิดตัว ซึ่งเป็นสาเหตุที่พบบ่อยที่สุด
ทำไมถึงสำคัญ
การตรวจลายเซ็นเป็นด่านแรกที่ป้องกันไม่ให้ระบบประมวลผล Request ปลอมที่แอบอ้างว่ามาจาก LINE ถ้าข้าม Field นี้ไป ใครก็ตามที่รู้ URL ของ Webhook สามารถส่งข้อมูลปลอมเข้าไปสร้าง Lead หรือ Event ปลอมในระบบได้ ซึ่งกระทบทั้งความถูกต้องของข้อมูลและอาจถูกใช้โจมตีระบบ
ปัญหาที่พบบ่อยในการ Implement ฝั่ง Developer คือคำนวณลายเซ็นจาก Body ที่ถูก Parse เป็น Object แล้วในโค้ด แทนที่จะใช้ Raw Body ตัวดิบก่อน Parse เพราะการแปลงกลับเป็น String อาจได้ลำดับ Key หรือ Whitespace ที่ต่างจากต้นฉบับ ทำให้ค่า Hash ไม่ตรงกันทั้งที่เนื้อหาจริงเหมือนกัน
คำถามที่พบบ่อย
ทำไมลายเซ็นไม่ตรงทั้งที่ Channel Secret ถูกต้อง
สาเหตุที่พบบ่อยที่สุดคือใช้ Body ที่ผ่านการ Parse เป็น JSON Object แล้ว Stringify กลับมาใหม่ แทนที่จะเก็บ Raw Body ตัวดิบไว้ตั้งแต่ต้น ให้ตรวจสอบว่าโค้ดฝั่ง Server เก็บ Body ดิบไว้คำนวณลายเซ็นก่อนที่จะ Parse หรือไม่
ต้องตรวจลายเซ็นทุก Request ที่เข้ามาไหม
ควรตรวจทุกครั้งก่อนประมวลผลข้อมูลใด ๆ จาก Webhook นี้คือมาตรฐานความปลอดภัยพื้นฐานที่ LINE แนะนำ ไม่ควรข้ามขั้นตอนนี้แม้ในสภาพแวดล้อมทดสอบ เพราะนิสัยการข้ามมักติดไปถึงระบบจริง
Channel Secret ที่ใส่ในเครื่องมือนี้ปลอดภัยไหม
การคำนวณทั้งหมดทำงานในเบราว์เซอร์ของคุณ ไม่มีการส่ง Channel Secret ไปที่เซิร์ฟเวอร์ใด ๆ แต่เพื่อความปลอดภัย แนะนำให้ทดสอบด้วย Channel Secret ของ Channel ทดสอบแยกต่างหาก ไม่ใช้ของระบบจริงที่กำลังใช้งานลูกค้าอยู่
อ่านต่อ
คู่มือและ Labs ที่เกี่ยวข้อง
อยากให้ระบบเก็บและตรวจข้อมูลนี้ให้อัตโนมัติ
linli เก็บ Click ID, Webhook Event และ Journey ของลูกค้าตั้งแต่คลิกโฆษณาจนถึงยอดขายที่ปิดใน LINE ให้อัตโนมัติ ทดลองฟรี 14 วัน ไม่ต้องใช้บัตรเครดิต