<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ขอบคุณมากครับ