<form> ของ HTML กันบ้างการส่งค่าจาก
<form> จะส่งมายังเซิฟเวอร์ได้ 2 แบบคือ
get: ข้อมูลจะถูกส่งผ่าน URL ทำให้มองเห็นได้ทุกคน และจำกัดปริมาณการส่งpost: ข้อมูลที่ส่งจะมองไม่เห็น (ง่าย ๆ) และ (เกือบ) ไม่จำกัดปริมาณการส่ง (ขึ้นอยู่กับค่าpost_max_sizeในไฟล์ php.ini)
get ไป แต่ถ้าข้อมูลนั้นเป็นความลับ หรือมีปริมาณมาก ๆ ก็ส่งผ่าน post โดยกำหนดค่า method ส่วน action คือไฟล์ .php ที่จะให้ประมวลผลข้อมูลจาก <form> อันนี้
ส่วนการนำค่ามาใช้งานนั้นจะใช้ผ่าน $_GET สำหรับ get และใช้ $_POST สำหรับ post ซึ่งเป็น associative array มี key เป็น name ของ <input> อันนั้น ๆ
ทั้ง
$_GET และ $_POST ถือเป็นตัวแปรแบบ superglobal ที่เรียกใช้ได้ทุกที่ตลอดเวลา แตกต่างจากตัวแปรแบบ global ตรงที่ไม่ต้องใส่ global นำก่อนจะใช้งาน
นอกจากนี้ยังมี $_REQUEST ที่เก็บค่าทั้งของ $_POST, $_GET และ $_COOKIE ไว้ด้วยกัน แต่เสี่ยงที่จะถูกโจมตี จึงไม่แนะนำให้ใช้
และสิ่งสำคัญอีกอย่างคือ ควรจะตรวจสอบความถูกต้อง (validation) ของค่าที่ได้จากผู้ใช้ และ/หรือแปลงค่า (cast) ให้ถูกต้องก่อนจะนำมาใช้งานเสมอ จะเต็มรูปแบบหรือคร่าว ๆ ก็แล้วแต่ความเหมาะสม และหากใช้ค่าที่รับมากับฐานข้อมูล หรือส่งต่อให้ระบบอื่น ๆ ควรจะเรียกใช้ฟังชั่น string escape ที่เกี่ยวข้องเสียก่อนทุกครั้ง ซึ่งจะป้องกันการโจมตีได้ระดับหนึ่ง
โทษน่ะครับ คือ ตัว blog อ่านยากมากครับ
ReplyDeleteพื้นหลังบวกกับตัวอักษรสีขาวบนพื้นดำ มันทำให้สายตาล้าอ่ะครับ (เอ๊ะ หรือผมเป็นคนเดียว - -')
ขอติเท่านี้ครับ ส่วนเนื้อหาที่เขียนนี่ เอาสิบเต็มไปเลย ฮา
ตอนแรกตั้งใจจะให้ได้อารมณ์ Terminal ครับเลยอยากจะใช้พื้นสีเข้ม ตัวอักษรสีอ่อน
Deleteแต่เห็นว่าอ่านยากอยู่ เลยกำลังปรับครับ ตอนนี้เปลี่ยนใหม่เป็นพื้นขาว ตัวอักษรสีเข้มสำหรับส่วนของโพสต์แล้ว หวังว่าจะช่วยให้อ่านง่ายขึ้นครับ
ป.ล. คำแนะนำ ติ (ชม) ไม่ใช่เรื่องผิด ไม่จำเป็นต้องขอโทษหรอกครับ : )
เนื้อหาเน้นไปด้านความปลอดภัยด้วยก็ดีนะครับ ผมเห็นคนพูดถึงเรื่องความปลอดภัยบ่อย แต่ก็มักจะพูดแค่คร่าว ๆ กลายเป็นว่า เหมือนไม่ได้อะไรเลย
ReplyDeleteขอบคุณมากครับ