สรุปมาตรการที่ระบบทำอยู่จริง รวมถึงข้อจำกัดที่เรายังไม่ได้ทำ เพื่อให้คุณตัดสินใจได้อย่างโปร่งใส
1. การเข้าสู่ระบบ
- ใช้ LINE Login (OAuth 2.0) พร้อม PKCE, state และ nonce และตรวจสอบ id_token ทุกครั้ง เราไม่เห็นหรือเก็บรหัสผ่านของคุณ
- เซสชันเป็นคุกกี้ที่ลงลายมือชื่อ (HMAC) แบบ httpOnly, SameSite=Lax และ Secure บนเว็บจริง อายุ 30 วัน
- หน้าผู้ดูแลจำกัดเฉพาะบัญชี LINE ที่อยู่ในรายชื่อผู้ดูแล
2. รูปภาพและสลิป
- รูปที่อัปโหลดถูกตรวจประเภทไฟล์จากเนื้อไฟล์จริง จำกัดขนาด และประมวลผลใหม่ (ตัดข้อมูล EXIF/ตำแหน่ง) ก่อนเก็บ
- รูปสลิปเก็บนอกโฟลเดอร์สาธารณะ ดูได้เฉพาะผู้ดูแล
- รูปโปรไฟล์ LINE ถูกเก็บสำเนาไว้ที่เซิร์ฟเวอร์เรา
3. การเงินและ jellycoin
- การเพิ่ม-หัก jellycoin ทำใน transaction ของฐานข้อมูลพร้อมล็อกแถว ป้องกันการหักซ้ำเมื่อกดพร้อมกัน
- เลขอ้างอิงรายการโอนและค่าแฮชของสลิปเป็นค่าไม่ซ้ำ จึงใช้สลิปเดิมเติมซ้ำไม่ได้
- ตรวจยอด ผู้รับ และความถูกต้องของสลิปผ่าน Slip2Go ฝั่งเซิร์ฟเวอร์เท่านั้น หากตรวจไม่ได้จะรอผู้ดูแลอนุมัติ
4. ตัวระบบ
- ตรวจสอบข้อมูลที่ส่งเข้ามาทุกครั้งที่ฝั่งเซิร์ฟเวอร์ ไม่เชื่อค่าจากเบราว์เซอร์
- ตั้งค่า security headers บนทุกหน้า
- Webhook ของ LINE ตรวจลายเซ็น X-Line-Signature ก่อนประมวลผล
- ข้อมูลลับ (คีย์ API, รหัสฐานข้อมูล) เก็บในตัวแปรสภาพแวดล้อม ไม่อยู่ในโค้ด
5. ข้อจำกัดที่ควรทราบ
เรากำลังพัฒนาต่อเนื่อง และขอบอกตรงๆ ว่าสิ่งต่อไปนี้ ยังไม่มี
- ยังไม่มีการจำกัดอัตราการเรียก (rate limit) ทั่วทั้งระบบ
- ยังไม่มียืนยันตัวตนสองชั้น (ใช้ความปลอดภัยของบัญชี LINE ของคุณ)
- ยังไม่เข้ารหัสข้อมูลในฐานข้อมูลระดับคอลัมน์ และยังไม่มี audit log
- การสำรองข้อมูลทำด้วยตนเอง ไม่ใช่อัตโนมัติ
6. แจ้งช่องโหว่หรือเหตุผิดปกติ
หากพบช่องโหว่หรือสงสัยว่าบัญชีถูกใช้โดยผู้อื่น โปรดแจ้งเราทันที เราจะตรวจสอบและแจ้งผู้ได้รับผลกระทบเมื่อจำเป็นตามกฎหมาย