ในบางครั้งบัคประหลาด ๆ ที่เราเจอใน web application ของเราอาจจะเกิดจากการที่เราไม่ได้ทำการตรวจสอบข้อมูลที่ user ใส่เข้ามาก็ได้
ผมเพิ่งเจอกรณีแปลก ๆ ไปเมื่อวันก่อน นั่นคือ user สามารถ submit ข้อมูลเข้ามาที่ record ที่ disable จาก web ไปแล้ว (ผมใช้วิธีการ set field flag ใน database ดังนั้น record ยังมีอยู่จริง แต่ไม่ online เท่านั้น) ซึ่งโดยปรกติแล้ว user จะไม่สามารถทำได้ เพราะ form สำหรับ submit จะไม่ online ทำให้ไม่สามารถกดปุ่มเพื่อ submit ข้อมุลขึ้นมาได้
โดยในกรณีนี้ ไม่ได้เกิดจากการที่มี programmer หรือ hardcore user มือบอนแกะ code html แล้ว post เข้ามาแต่ประการใด เพียงแค่ user ธรรมดา ๆ คนหนึ่ง ทำการ save page as html เอาไว้ แล้วกด submit จากตรงนั้น ซึ่งเจ้า script ที่ไม่ได้ตรวจสอบ input นี่เองที่มีรูรั่วอยู่ และทำให้เกิดปัญหานี้ขึ้น
แค่นี้ก็ทำให้ผมหาบัคนี้ตั้งนานกว่าจะเจอว่าสาเหตุเกิดจากการที่ลืม filter input นี่เอง
และแน่นอน... ผมไม่ได้เป็นคนทำ script ตัวนี้ (แอบโทษคนอื่นซะงั้น... แต่แกก็ไม่ได้ตรวจหละวะ ผิดอยู่ดี แหะ ๆ)