หน้าแรก › เทคโนโลยี › เว็บไซต์ทำงานอย่างไร
เทคโนโลยี · เว็บทำงานอย่างไร
เว็บไซต์ทำงานอย่างไร
จดหมายถึงเครื่องที่อยู่ไกล
ทุกครั้งที่เปิดเว็บ อุปกรณ์ของเราเขียนจดหมายสั้น ๆ ถึงเครื่องที่เราไม่เคยเห็น และได้คำตอบกลับมาในเสี้ยววินาที สัปดาห์นี้ ช่องโหว่ในภาษาของเครื่องเหล่านั้นทำให้เว็บไซต์ทั่วโลกต้องปิดตัวเองชั่วคราว นี่คือวิธีที่บทสนทนานั้นทำงาน และทางที่มันผิดพลาดได้
หนังสามมิติโต้ตอบได้ 10 นาที 1989 ถึง ปัจจุบัน เผยแพร่ 23 ตุลาคม 2569
ดูภาพยนตร์ 3 มิติแบบโต้ตอบอ่านฉบับ English
สารบัญ บทนำ บทที่ I · เครือข่ายของเอกสาร บทที่ II · หาเครื่องให้เจอ บทที่ III · บทสนทนา บทที่ IV · หน้าเว็บที่สร้างตามสั่ง บทที่ V · เมื่อข้อมูลกลายเป็นคำสั่ง บทส่งท้าย
บทนำ เทคโนโลยี
จดหมายถึงเครื่องที่อยู่ไกล ทำไมช่องโหว่เดียวทำให้เว็บไซต์ต้องปิดชั่วคราว
ช่วงหลังวันที่ 21 ตุลาคม 2026 เว็บไซต์รัฐบาลในฟินแลนด์และเนเธอร์แลนด์ รวมถึงบางระบบของวิกิพีเดีย หายไปจากอินเทอร์เน็ต ไม่มีใครโจมตีจนล่ม เจ้าของปิดมันเองโดยตั้งใจ
สาเหตุคือช่องโหว่ร้ายแรงสองจุดใน PHP ภาษาโปรแกรมที่อยู่เบื้องหลังเว็บไซต์ส่วนใหญ่ของโลก เซิร์ฟเวอร์ที่ยังไม่ได้ติดตั้งการแก้ไขใหม่อาจถูกสั่งให้ทำตามคำสั่งของคนแปลกหน้าได้ และมูลนิธิ PHP เพิ่งเร่งปล่อยการแก้ไขออกมา
บริษัทความปลอดภัยพบช่องโหว่นี้ตั้งแต่เดือนสิงหาคมโดยใช้เครื่องมือ AI ช่วย จะเข้าใจว่าช่องโหว่เดียวไปได้ไกลขนาดนี้ได้อย่างไร ลองตามหน้าเว็บหน้าเดียวไปตลอดการเดินทางของมัน
คืนแห่งการแพตช์ ตู้เซิร์ฟเวอร์ในศูนย์ข้อมูล ตู้หนึ่งถูกตั้งสัญญาณเตือน ภาพนิ่งสร้างด้วย AIสองช่องโหว่: CVE-2026-109618 และ CVE-2026-109619 พบในเดือนสิงหาคม 2026 ด้วยเครื่องมือ AI ไม่มีใครสังเกตเห็นมานานกว่าสิบปี แพตช์เผยแพร่ 21 ตุลาคม 2026 PHP2Shell โดยย่อ บริการเว็บภาครัฐของฟินแลนด์ เว็บไซต์หน่วยงานความมั่นคงไซเบอร์ของเนเธอร์แลนด์ บางระบบของมูลนิธิวิกิมีเดีย บางหน้าเว็บของ ANA, JR West และ MUFG ในญี่ปุ่น ปิดชั่วคราวระหว่างแพตช์
บทที่ I · เครือข่ายของเอกสาร 1989
เครือข่ายของเอกสาร เว็บเริ่มจากวิธีแบ่งปันเอกสาร
เว็บเริ่มต้นจากวิธีแบ่งปันเอกสาร เดือนมีนาคม 1989 ทิม เบอร์เนิร์ส-ลี นักวิทยาศาสตร์ชาวอังกฤษที่ทำงานอยู่ที่เซิร์น ห้องปฏิบัติการฟิสิกส์ใกล้นครเจนีวา เขียนข้อเสนอแรกของเวิลด์ไวด์เว็บ
พอถึงปลายปี 1990 เว็บเซิร์ฟเวอร์และเบราว์เซอร์ตัวแรกก็ทำงานอยู่ที่นั่น บนคอมพิวเตอร์ NeXT เว็บไซต์แรกของโลกอยู่ที่ที่อยู่ info.cern.ch
วันที่ 30 เมษายน 1993 เซิร์นเปิดซอฟต์แวร์ของเว็บให้ใช้ได้โดยไม่ต้องจ่ายค่าสิทธิ์ ใครก็ตั้งเซิร์ฟเวอร์ได้ และทุกหน้าเชื่อมโยงไปยังหน้าอื่นได้
โต๊ะในห้องแล็บ ปี 1990 สถานีงานในจินตนาการของยุคนั้น ไม่ใช่เครื่องจริง ภาพนิ่งสร้างด้วย AIมี.ค. 1989 ข้อเสนอแรกของเบอร์เนิร์ส-ลีพ.ย. 1990 ข้อเสนออย่างเป็นทางการร่วมกับโรแบร์ กายิโยปลาย 1990 เซิร์ฟเวอร์และเบราว์เซอร์ตัวแรกทำงานต้น 1993 NCSA ปล่อยเบราว์เซอร์ Mosaic30 เม.ย. 1993 ซอฟต์แวร์เปิดให้ใช้ฟรีเว็บที่เซิร์น
1 เว็บไซต์ตอนเริ่มต้น: info.cern.ch
30 Apr 1993 วันที่โค้ดเปิดให้ทุกคน ตอนนั้นกับตอนนี้ บทที่ I · เครือข่ายของเอกสาร
กำเนิดที่เซิร์น
ประวัติของเซิร์นเอง: ทิม เบอร์เนิร์ส-ลี เขียนข้อเสนอแรกของเวิลด์ไวด์เว็บในเดือนมีนาคม 1989 และร่วมกับโรแบร์ กายิโย ทำเป็นข้อเสนอต่อผู้บริหารอย่างเป็นทางการในเดือนพฤศจิกายน 1990 พอถึงปลายปี 1990 เว็บเซิร์ฟเวอร์และเบราว์เซอร์ตัวแรกทำงานที่เซิร์น และ info.cern.ch คือที่อยู่ของเว็บไซต์และเว็บเซิร์ฟเวอร์แห่งแรกของโลก บนคอมพิวเตอร์ NeXT ต้นปี 1993 NCSA แห่งมหาวิทยาลัยอิลลินอยส์ปล่อยเบราว์เซอร์ Mosaic และวันที่ 30 เมษายน 1993 เซิร์นเปิดซอฟต์แวร์ WorldWideWeb ให้ใช้โดยไม่ต้องจ่ายค่าสิทธิ์
เครือข่ายหน้าเว็บที่เชื่อมกันบนจอเป็นภาพแผนผัง ไม่ใช่แผนที่ของเว็บไซต์จริง
แหล่งข้อมูล:
CERN: a short history of the Web
บทที่ II · หาเครื่องให้เจอ บทที่ II
หาเครื่องให้เจอ คอมพิวเตอร์สองเครื่อง บทสนทนาเดียว
การเข้าเว็บไซต์ทุกครั้งคือบทสนทนาระหว่างคอมพิวเตอร์สองเครื่อง เครื่องของเราคือไคลเอนต์ (client) คือโทรศัพท์หรือแล็ปท็อป กับเบราว์เซอร์ที่ทำงานอยู่บนนั้น
อีกเครื่องคือเซิร์ฟเวอร์ (server) คอมพิวเตอร์ที่มีหน้าที่เก็บหน้าเว็บและส่งสำเนาให้คนที่ขอ มันอาจอยู่ในศูนย์ข้อมูลอีกทวีปหนึ่ง
เมื่อเราเปิดหน้าเว็บ สำเนาโค้ดของมันจะเดินทางมาที่อุปกรณ์ แล้วเบราว์เซอร์แปลงโค้ดนั้นเป็นภาพที่เราเห็น HTML กำหนดโครงสร้าง CSS กำหนดหน้าตา และ JavaScript กำหนดการทำงาน
ปลายสองข้างของเส้นเดียว แล็ปท็อปที่บ้านกับอาคารที่เต็มไปด้วยเซิร์ฟเวอร์ที่อยู่ไกลออกไป ภาพนิ่งสร้างด้วย AIไคลเอนต์: ขอ แล้ววาดหน้าเว็บ เซิร์ฟเวอร์: เก็บหน้าเว็บและตอบกลับ แอสเซต: ภาพ วิดีโอ PDF ที่ไม่ใช่โค้ด ใครทำอะไร HTML: หัวข้อ ย่อหน้า ลิงก์ CSS: สี แบบอักษร การจัดวาง JavaScript: เมนู ปุ่ม การอัปเดตสด สามภาษาของเบราว์เซอร์ บทที่ II · หาเครื่องให้เจอ
ไคลเอนต์และเซิร์ฟเวอร์
MDN Web Docs: คอมพิวเตอร์ที่ต่ออินเทอร์เน็ตเป็นได้ทั้งไคลเอนต์ (อุปกรณ์และซอฟต์แวร์ของผู้ใช้ เช่น เบราว์เซอร์) หรือเซิร์ฟเวอร์ (คอมพิวเตอร์ที่เก็บหน้าเว็บ เว็บไซต์ หรือแอป) เมื่อไคลเอนต์ขอหน้าเว็บ สำเนาโค้ดจะถูกดาวน์โหลดจากเซิร์ฟเวอร์แล้วเบราว์เซอร์นำมาแสดงผล เว็บไซต์สร้างจาก HTML, CSS และ JavaScript เป็นหลัก ส่วนภาพ เพลง วิดีโอ และเอกสาร คือแอสเซตที่ไม่ใช่โค้ดที่เบราว์เซอร์ตีความ
คอมพิวเตอร์ สายสัญญาณ และแพ็กเก็ตสามมิติเป็นแบบจำลองอย่างง่ายเพื่อการสอน ไม่ใช่ฮาร์ดแวร์หรือเส้นทางเครือข่ายจริง
แหล่งข้อมูล:
MDN Web Docs: how the web works แต่ก่อนอื่นเบราว์เซอร์ต้องหาเซิร์ฟเวอร์ให้เจอ คนจำชื่ออย่าง mozilla.org แต่คอมพิวเตอร์บนอินเทอร์เน็ตหากันด้วยตัวเลขที่เรียกว่าที่อยู่ไอพี (IP address)
ระบบชื่อโดเมน หรือ DNS ทำงานเหมือนสมุดที่อยู่ของอินเทอร์เน็ต เบราว์เซอร์ถามเซิร์ฟเวอร์ DNS ซึ่งค้นชื่อนั้นแล้วตอบกลับเป็นตัวเลข
เว็บใหญ่มีเซิร์ฟเวอร์หลายเครื่อง ตัวเลขที่เราได้จึงอาจขึ้นกับว่าเราอยู่ที่ไหน จากนั้นคำขอจริงจึงออกเดินทางได้
mozilla.org สิ่งที่คนพิมพ์
192.0.2.172 สิ่งที่คอมพิวเตอร์ใช้ (ที่อยู่ตัวอย่างของ MDN) ชื่อกับตัวเลข 1 · เบราว์เซอร์ถาม: ชื่อนี้อยู่ที่ไหน 2 · เซิร์ฟเวอร์ DNS ค้นหา 3 · ตอบกลับ: ที่อยู่ไอพี 4 · เบราว์เซอร์ติดต่อที่อยู่นั้น การค้นหนึ่งครั้ง
1 ชื่อ ที่เราพิมพ์
หลายไอพี เว็บใหญ่อาจตอบจากเซิร์ฟเวอร์ใกล้ตัวเรา ชื่อเดียว หลายเครื่อง บทที่ II · หาเครื่องให้เจอ
สมุดที่อยู่ของอินเทอร์เน็ต
MDN Web Docs อธิบายว่า DNS คือสมุดที่อยู่ของเว็บไซต์ มันแปลงชื่อโดเมนอย่าง mozilla.org เป็นที่อยู่ไอพีอย่าง 192.0.2.172 (ที่อยู่ตัวอย่าง) ขั้นแรกของการโหลดทุกหน้าคือเบราว์เซอร์ไปถามเซิร์ฟเวอร์ DNS เพื่อหาที่อยู่จริงของเซิร์ฟเวอร์ที่เว็บไซต์นั้นตั้งอยู่ เว็บขนาดใหญ่อาจมีหลายเซิร์ฟเวอร์ ที่อยู่ที่ได้จึงต่างกันตามตำแหน่ง
คอมพิวเตอร์ สายสัญญาณ และแพ็กเก็ตสามมิติเป็นแบบจำลองอย่างง่ายเพื่อการสอน ไม่ใช่ฮาร์ดแวร์หรือเส้นทางเครือข่ายจริง
แหล่งข้อมูล:
MDN Web Docs: how the web works
บทที่ III · บทสนทนา บทที่ III
บทสนทนา จดหมายสั้น ๆ กับคำตอบที่มีเลขกำกับ
ตอนนี้เบราว์เซอร์เขียนจดหมายสั้น ๆ ด้วยภาษาที่เรียกว่า HTTP (Hypertext Transfer Protocol) จดหมายที่ง่ายที่สุดเขียนว่า GET ตามด้วยหน้าที่ต้องการและชื่อเว็บไซต์
เซิร์ฟเวอร์ตอบด้วยตัวเลขก่อน 200 แปลว่าเรียบร้อย ส่งให้แล้ว 404 แปลว่าไม่มีหน้านี้ 503 แปลว่าเซิร์ฟเวอร์ใช้งานไม่ได้ชั่วคราว
ทีนี้ลองเองดู กดส่งคำขอ หรือขอหน้าที่ไม่มีอยู่จริง แล้วดูจดหมายกับคำตอบเดินทางข้ามเครือข่าย
คำขอ คำขอ HTTP เป็นข้อความธรรมดา สั้นพอจะใส่ในโปสการ์ดได้ ภาพนิ่งสร้างด้วย AIGET /en-US/ HTTP/2 \texttt{GET /en-US/ HTTP/2} GET /en-US/ HTTP/2 Host: developer.mozilla.org \texttt{Host: developer.mozilla.org} Host: developer.mozilla.org จดหมายเขียนว่า ตัวอย่างของ MDN: วิธีการ เส้นทาง รุ่นโพรโทคอล แล้วตามด้วยชื่อเว็บไซต์200 · เรียบร้อย นี่คือหน้าเว็บ 301 · ย้ายไปที่อยู่ใหม่ถาวร 403 · ไม่มีสิทธิ์ดู 404 · ไม่มีหน้านี้ 503 · เซิร์ฟเวอร์ใช้งานไม่ได้ชั่วคราว รหัสสถานะ ตัวเลขหลักแรกบอกกลุ่ม: 2 สำเร็จ 3 ย้ายที่ 4 คำขอมีปัญหา 5 เซิร์ฟเวอร์มีปัญหา
200 หน้าเว็บมาถึงและถูกวาดขึ้นจอ
404 เซิร์ฟเวอร์ตอบ แต่ไม่มีอะไรจะส่ง ตาเรา บทที่ III · บทสนทนา
พูดภาษา HTTP
MDN Web Docs: HTTP เป็นโพรโทคอลระดับแอปพลิเคชันที่กำหนดภาษาให้ไคลเอนต์กับเซิร์ฟเวอร์ใช้คุยกัน คำขอทั่วไปใช้วิธี GET (“GET /en-US/ HTTP/2”, “Host: developer.mozilla.org”) คำตอบขึ้นต้นด้วยบรรทัดสถานะและส่วนหัว แล้วตามด้วยเนื้อหา รหัสที่พบบ่อย: 200 สำเร็จ 301 ย้ายถาวร 400 คำขอผิดรูปแบบ 403 ไม่มีสิทธิ์ 404 ไม่พบ 503 ใช้งานไม่ได้ชั่วคราว (เช่นระหว่างบำรุงรักษา)
ลองดู: “ส่งคำขอ” ได้ 200 OK ส่วน “ขอหน้าที่ไม่มี” ได้ 404
แหล่งข้อมูล:
MDN Web Docs: how the web works คำตอบไม่ได้เดินทางเป็นก้อนเดียว มันถูกหั่นเป็นชิ้นเล็ก ๆ ที่เรียกว่าแพ็กเก็ต (packet) แต่ละชิ้นมีส่วนหัวบอกว่ามาจากไหน จะไปไหน และอยู่ลำดับที่เท่าไร กับส่วนข้อมูลซึ่งเป็นเศษเสี้ยวของหน้าเว็บ
แพ็กเก็ตอาจไปคนละเส้นทางและมาถึงไม่ตรงลำดับ กติกาที่เรียกว่า TCP/IP ทำให้อุปกรณ์ของเราเรียงมันกลับ และขอชิ้นที่หายไปใหม่ได้
ทีนี้ลองทำแพ็กเก็ตหายสักชิ้น แล้วดูมันถูกส่งมาใหม่ หน้าเว็บจะปรากฏก็ต่อเมื่อได้ครบทุกชิ้นแล้วเท่านั้น
ส่วนหัว: ที่อยู่ไอพีต้นทางและปลายทาง ส่วนหัว: ลำดับของแพ็กเก็ตนี้และจำนวนทั้งหมด ส่วนข้อมูล: เศษเสี้ยวของข้อมูล ข้างในหนึ่งแพ็กเก็ต
8 แพ็กเก็ตบรรจุหน้าเว็บหนึ่งหน้า
4 เส้นทางที่ไปได้ ในแบบจำลองนี้ ประกอบกลับ ชิ้นส่วนมาถึงคนละเส้นทางแล้วถูกเรียงกลับเข้าที่ ภาพนิ่งสร้างด้วย AI
1 ชิ้น คือสิ่งเดียวที่ต้องส่งใหม่เมื่อหายไป
หลายเส้นทาง แพ็กเก็ตแบ่งกันใช้เส้นทางในเครือข่าย ทำไมต้องหั่น บทที่ III · บทสนทนา
แพ็กเก็ตและ TCP/IP
MDN Web Docs: เซิร์ฟเวอร์ส่งไฟล์ของเว็บไซต์เป็นชิ้นเล็ก ๆ ต่อเนื่องกันที่เรียกว่าแพ็กเก็ต แต่ละแพ็กเก็ตมีส่วนหัว (ที่อยู่ไอพี ลำดับแพ็กเก็ต จำนวนทั้งหมด รายละเอียดโพรโทคอล) และส่วนข้อมูล การแบ่งข้อมูลทำให้ขอแพ็กเก็ตที่หายหรือเสียใหม่ได้ทีละชิ้น และแพ็กเก็ตไปคนละเส้นทางได้ ไคลเอนต์ใช้ส่วนหัวเรียงลำดับกลับ TCP/IP คือโพรโทคอลการสื่อสารที่กำหนดว่าข้อมูลเดินทางบนอินเทอร์เน็ตอย่างไร
ส่วนหัว TCP จริงนับเป็นไบต์ ไม่ใช่ทีละชิ้น “แพ็กเก็ตที่ 5 จาก 8” เป็นการอธิบายแบบง่าย
คอมพิวเตอร์ สายสัญญาณ และแพ็กเก็ตสามมิติเป็นแบบจำลองอย่างง่ายเพื่อการสอน ไม่ใช่ฮาร์ดแวร์หรือเส้นทางเครือข่ายจริง
แหล่งข้อมูล:
MDN Web Docs: how the web works
บทที่ IV · หน้าเว็บที่สร้างตามสั่ง บทที่ IV
หน้าเว็บที่สร้างตามสั่ง หลายหน้าเว็บยังไม่มีอยู่จริงจนกว่าเราจะขอ
เว็บไซต์ยุคแรกเป็นแบบสแตติก (static) เซิร์ฟเวอร์เก็บหน้าเว็บที่ทำเสร็จแล้วเป็นไฟล์ และส่งสำเนาเดียวกันให้ทุกคนที่ขอ
แต่ร้านค้า ธนาคาร หรือเว็บข่าว ต้องมีหน้าที่ต่างกันสำหรับผู้ชมแต่ละคนและทุกขณะ ตะกร้าสินค้าของเรา บัญชีของเรา พาดหัวข่าวชั่วโมงนี้ การเขียนแต่ละหน้าด้วยมือเป็นไปไม่ได้
เซิร์ฟเวอร์จำนวนมากจึงสร้างหน้าเว็บตามสั่ง โปรแกรมฝั่งเซิร์ฟเวอร์ (server-side) ดึงสิ่งที่ต้องใช้จากฐานข้อมูล เทลงในแม่แบบ แล้วส่ง HTML ใหม่เอี่ยมกลับมา นี่คืองานที่ PHP ทำ ลองสลับดูสองแบบแล้วเปรียบเทียบกัน
1 ไฟล์ เก็บไว้ในดิสก์ ส่งให้ทุกคนแบบเดิม สแตติก โรงงานหน้าเว็บ อุปมา: เครื่องจักรประกอบแต่ละหน้าจากชิ้นส่วนที่เก็บไว้ ภาพนิ่งสร้างด้วย AIคำขอมาถึง: “แสดงสินค้า 4182” โปรแกรมค้นฐานข้อมูล ข้อมูลเติมลงช่องว่างในแม่แบบ HTML ที่เสร็จแล้วถูกส่งกลับไปที่เบราว์เซอร์ สร้างหนึ่งหน้า
1 แม่แบบ กลายเป็นหน้าสินค้าได้นับล้านหน้า ไดนามิก บทที่ IV · หน้าเว็บที่สร้างตามสั่ง
เว็บสแตติกและไดนามิก
MDN Web Docs: เว็บสแตติกส่งเนื้อหาเดิมที่เขียนตายตัวทุกครั้งที่มีการขอ เซิร์ฟเวอร์ดึงเอกสารจากระบบไฟล์ของมัน ส่วนเว็บไดนามิก เนื้อหาบางส่วนถูกสร้างเมื่อจำเป็นเท่านั้น โดยปกติหน้า HTML สร้างจากการนำข้อมูลในฐานข้อมูลไปใส่ช่องว่างในแม่แบบ HTML สำหรับร้านค้าที่มีสินค้าจำนวนมหาศาล การทำหน้าสแตติกแยกให้ทุกชิ้นเป็นเรื่องที่ทำไม่ได้เลยในทางปฏิบัติ
ลองดู: สลับเซิร์ฟเวอร์ระหว่างส่งไฟล์ที่เก็บไว้กับสร้างหน้าจากฐานข้อมูล
แหล่งข้อมูล:
MDN Web Docs: introduction to the server side (static and dynamic sites) หนึ่งในเครื่องมือยอดนิยมที่สุดสำหรับงานนี้เกิดจากโฮมเพจส่วนตัว ปี 1994 ราสมุส เลอร์ดอร์ฟ เขียนโปรแกรมเล็ก ๆ ไม่กี่ตัวด้วยภาษา C เพื่อนับคนที่เข้ามาดูประวัติย่อออนไลน์ของเขา แล้วเรียกมันว่า Personal Home Page Tools
ปี 1997 แอนดี กัทแมนส์ และซีฟ ซูราสกี ที่เทลอาวีฟ เริ่มเขียนมันใหม่สำหรับโครงการในมหาวิทยาลัย แล้วร่วมมือกับเลอร์ดอร์ฟสร้างภาษาใหม่ PHP 3 ประกาศเปิดตัวในเดือนมิถุนายน 1998
ชื่อกลายเป็นอักษรย่อแบบวนกลับ (recursive acronym) ที่ตัวอักษรแรกหมายถึงตัวมันเอง คือ PHP: Hypertext Preprocessor แล้ว PHP 7 ออกในปี 2015 และ PHP 8 ในปี 2020
โฮมเพจในยุค 1990 ห้องทำงานที่บ้านในจินตนาการของยุคนั้น ภาพนิ่งสร้างด้วย AI1994 Personal Home Page Tools1996 PHP/FI (Forms Interpreter)มิ.ย. 1998 PHP 3 เขียนใหม่ร่วมกับกัทแมนส์และซูราสกี2015 PHP 72020 PHP 8จากโฮมเพจสู่ภาษาโปรแกรม PHP: Hypertext Preprocessorอักษรย่อแบบวนกลับ: ตัวอักษรแรกหมายถึงชื่อของมันเอง บทที่ IV · หน้าเว็บที่สร้างตามสั่ง
PHP มาจากไหน
ประวัติใน PHP Manual: ราสมุส เลอร์ดอร์ฟ สร้าง PHP ในปี 1994 เป็นชุดโปรแกรมภาษา C (CGI) ใช้ครั้งแรกเพื่อนับคนเข้าดูประวัติย่อออนไลน์ของเขา และเรียกว่า “Personal Home Page Tools” ต่อมาในปี 1996 มี PHP/FI (“Forms Interpreter”) ปี 1997 แอนดี กัทแมนส์ และซีฟ ซูราสกี จากเทลอาวีฟ เริ่มเขียนตัวแปลภาษาใหม่สำหรับโครงการอีคอมเมิร์ซในมหาวิทยาลัย แล้วร่วมงานกับเลอร์ดอร์ฟ PHP 3.0 ประกาศในเดือนมิถุนายน 1998 และชื่อกลายเป็นอักษรย่อแบบวนกลับ “PHP: Hypertext Preprocessor” PHP 7.0 ออกในปี 2015 และ PHP 8.0 ในปี 2020
แหล่งข้อมูล:
PHP Manual: history of PHP ทุกวันนี้ ตามข้อมูลของบริษัทสำรวจ W3Techs ในบรรดาเว็บไซต์ที่ระบุภาษาฝั่งเซิร์ฟเวอร์ได้ 69.3 เปอร์เซ็นต์ใช้ PHP
WordPress ระบบที่สร้างด้วย PHP ซึ่งเป็นที่รู้จักที่สุด ถูกใช้ทำเว็บไซต์ราวสี่สิบเปอร์เซ็นต์ของทั้งหมด ตามตัวเลขที่รอยเตอร์อ้างถึง และวิกิพีเดีย ไมโครซอฟท์ กับ Internet Archive ก็อยู่ในรายชื่อเว็บที่ใช้ PHP ของ W3Techs
ดังนั้นช่องโหว่ในตัว PHP เอง ไม่ใช่ในเว็บไซต์ใดเว็บหนึ่ง จึงอยู่ในเซิร์ฟเวอร์นับล้านเครื่องพร้อมกัน Palo Alto Networks นับระบบ PHP ที่อาจมีความเสี่ยงได้ 22.6 ล้านระบบ
PHP 69.3% ภาษาอื่นทั้งหมด 30.7%
เว็บที่ใช้ PHP (W3Techs, 22 ต.ค. 2026) เว็บที่ตรวจไม่ได้ว่าใช้ภาษาอะไรไม่ถูกนับรวม
~40% ของเว็บทั้งหมดใช้ WordPress (ตามที่รอยเตอร์อ้าง) แพลตฟอร์มเดียว wikipedia.org microsoft.com archive.org theguardian.com ตัวอย่างเว็บที่ใช้ PHP (W3Techs)
22.6 million ระบบ PHP ที่อาจมีช่องโหว่ (Palo Alto Networks) ความเสี่ยง
บทที่ V · เมื่อข้อมูลกลายเป็นคำสั่ง บทที่ V
เมื่อข้อมูลกลายเป็นคำสั่ง ช่องโหว่คืออะไรกันแน่
ทำไมช่องโหว่เดียวถึงอันตรายขนาดนี้ เซิร์ฟเวอร์รับข้อความจากคนแปลกหน้าตลอดทั้งวัน ทั้งที่อยู่เว็บ คำค้น ช่องกรอกฟอร์ม และทั้งหมดนั้นควรถูกอ่านเป็นแค่ข้อมูล
ช่องโหว่ (vulnerability) คือความผิดพลาดในซอฟต์แวร์ที่ทำให้ข้อความบางส่วนถูกตีความเป็นคำสั่งแทน คอมพิวเตอร์ส่วนใหญ่ไม่ได้ขีดเส้นแบ่งโค้ดกับข้อมูลไว้ชัดเจน ข้อความที่ถูกปั้นมาอย่างจงใจจึงอาจเล็ดลอดข้ามเส้นนั้นไปได้
กรณีเลวร้ายที่สุดเรียกว่าการรันโค้ดจากระยะไกล (remote code execution) ใครบางคนผ่านเครือข่ายสามารถสั่งให้เซิร์ฟเวอร์รันคำสั่งที่เขาเลือกได้ ด้วยสิทธิ์เท่ากับโปรแกรมที่ถูกเจาะเข้าไป
ที่อยู่: /news/today คำค้น: “ตั๋วเครื่องบินราคาถูก” ช่องฟอร์ม: ชื่อ อีเมล ข้อความ สิ่งที่เซิร์ฟเวอร์อ่านทั้งวัน อุปมา พนักงานคัดแยกอ่านโน้ตในพัสดุแล้วทำตามราวกับเป็นคำสั่ง ภาพนิ่งสร้างด้วย AIความสามารถของผู้โจมตีในการรันคำสั่งหรือโค้ดใดก็ได้ตามที่เลือก บนเครื่องเป้าหมายนิยามทั่วไปของการรันโค้ดตามอำเภอใจ ถูกกระตุ้นผ่านเครือข่าย ผู้โจมตีเลือกคำสั่งเอง ทำงานด้วยสิทธิ์ของโปรแกรมที่ถูกเจาะ PHP2Shell: CERT-EU ระบุว่าอาจโจมตีได้โดยไม่ต้องล็อกอิน การรันโค้ดจากระยะไกล บทที่ V · เมื่อข้อมูลกลายเป็นคำสั่ง
โค้ดกับข้อมูล
การรันโค้ดตามอำเภอใจ (arbitrary code execution) คือความสามารถของผู้โจมตีในการรันคำสั่งหรือโค้ดใดก็ได้บนเครื่องเป้าหมาย ส่วนการรันโค้ดจากระยะไกลคือความสามารถเดียวกันที่ถูกกระตุ้นผ่านเครือข่าย รากของปัญหาที่พบบ่อยคือคอมพิวเตอร์ส่วนใหญ่ไม่ได้แยกโค้ดกับข้อมูลออกจากกันโดยทั่วไป โค้ดร้ายจึงปลอมตัวเป็นข้อมูลธรรมดาได้ อีกต้นเหตุคือความเสียหายของหน่วยความจำ เช่น บัฟเฟอร์ล้น การโจมตีจะได้สิทธิ์เท่ากับโปรเซสที่มีช่องโหว่ Paubox รายงานว่า CERT-EU ระบุคะแนนความเสี่ยงของช่องโหว่ PHP ชี้ว่าอาจรันโค้ดจากระยะไกลได้โดยไม่ต้องยืนยันตัวตน และ NSA เตือนว่ามันอาจเปิดทางเข้าถึงระบบไฟล์หรือฐานข้อมูลของเซิร์ฟเวอร์โดยตรง
ภาพยนตร์อธิบายเพียงหลักการ ไม่ได้แสดงกลไกของช่องโหว่ครั้งนี้
แหล่งข้อมูล:
Wikipedia: arbitrary code execution ;
Paubox (Oct 2026): PHP flaws found by AI force governments and major sites offline เพื่อให้ทุกคนพูดถึงช่องโหว่ตัวเดียวกัน แต่ละตัวจึงได้เลขประจำตัว รายการ CVE ย่อมาจาก Common Vulnerabilities and Exposures เสนอขึ้นที่บริษัท MITRE และเปิดเผยต่อสาธารณะในเดือนกันยายน 1999 พร้อม 321 รายการ
ช่องโหว่ที่ใช้ร่วมกันเคยเขย่าเว็บมาแล้ว เมษายน 2014 พบบั๊ก Heartbleed ใน OpenSSL โค้ดที่เข้ารหัสการเชื่อมต่อแบบปลอดภัยจำนวนมาก แบบที่มีรูปแม่กุญแจในเบราว์เซอร์ Netcraft ประเมินว่าเว็บเซิร์ฟเวอร์ที่ปลอดภัยและน่าเชื่อถือราวสิบเจ็ดเปอร์เซ็นต์ได้รับผลกระทบ
Wiz เปรียบช่องโหว่ PHP เดือนนี้กับ Heartbleed บทเรียนเหมือนกัน คือข้อบกพร่องในชิ้นส่วนที่ใช้ร่วมกันส่งผลถึงทุกคนที่ใช้มัน
Sep 1999 MITRE เปิดเผยต่อสาธารณะ
321 ช่องโหว่ในรายการ รายการ CVE แรก CVE-2026-109618 \texttt{CVE-2026-109618} CVE-2026-109618 2026 \texttt{2026} 2026 ปีที่ได้รับเลข 109618 \texttt{109618} 109618 เลขลำดับ อ่านเลข CVE หนึ่งในสองช่องโหว่ PHP2Shell
~17% ของเซิร์ฟเวอร์ SSL ที่น่าเชื่อถือได้รับผลกระทบ (Netcraft)
~500,000 ใบรับรองของเว็บที่ปลอดภัยที่เกี่ยวข้อง Heartbleed 7 เมษายน 2014 2014 · OpenSSL อยู่ในเซิร์ฟเวอร์ที่ปลอดภัยจำนวนมาก 2026 · PHP อยู่หลัง 69.3% ของเว็บที่ทราบภาษาฝั่งเซิร์ฟเวอร์ ชิ้นส่วนที่ใช้ร่วมกัน Wiz เปรียบความสำคัญของช่องโหว่ PHP กับบั๊ก Heartbleed ปี 2014ตามรายงานของ CNN 22 ตุลาคม 2026 กลับมาที่ช่องโหว่ PHP แผนเดิมคือแก้ไขอย่างเงียบ ๆ และประสานกัน ให้เจ้าของเว็บได้แพตช์ก่อนที่ใครจะรู้วิธีโจมตี แต่รายละเอียดหลุดออกไปทางออนไลน์ช่วงดึกวันที่ 20 ตุลาคม
วันที่ 21 มูลนิธิ PHP จึงเผยแพร่การแก้ไขเร็วกว่ากำหนด และสำนักงานความมั่นคงแห่งชาติสหรัฐฯ (NSA) เร่งให้บริษัทต่าง ๆ ลงมือทันที ภายในสี่สิบห้านาที Cloudflare พบความพยายามใช้ช่องโหว่นี้หลายหมื่นครั้ง
แพตช์ (patch) คือการแทนที่โค้ดที่ผิดพลาด ระหว่างที่ยังไม่ได้ติดตั้ง ผู้ดูแลบางรายปิดเว็บไซต์ไว้ก่อนเพื่อความปลอดภัย ทีนี้ลองเอง ติดตั้งแพตช์ให้เซิร์ฟเวอร์นี้ดู
1 ส.ค. Calif พบปัญหาแรก19 ส.ค. Wiz พบเองอีกครั้ง20 ต.ค. รายละเอียดหลุดก่อนมีแพตช์21 ต.ค. มูลนิธิ PHP เผยแพร่การแก้ไข21–22 ต.ค. เว็บต่าง ๆ ปิดชั่วคราวเพื่ออัปเดตPHP2Shell ปี 2026 ใน 45 นาที: หลายหมื่น 10⁴+ ใน 2 ชม.: หลายแสน 10⁵+ ถึงช่วงค่ำ: หลายล้าน 10⁶+
ความพยายามโจมตีที่ Cloudflare เห็น 21 ต.ค. ความยาวแท่งแสดงลำดับขนาดตามที่รายงาน Cloudflare ไม่ได้ให้ตัวเลขแน่ชัด
เร็วกว่ากำหนด การแก้ไขถูกเผยแพร่หลังข้อมูลหลุด
NSA เร่งให้บริษัทลงมือทันที 21 ตุลาคม ติดตั้งให้เร็วที่สุด หรือปิดเว็บไว้ชั่วคราว แล้วตรวจหาร่องรอยการบุกรุก ระหว่างรอแพตช์ แพตช์เป็นแค่ส่วนหนึ่งของการป้องกัน เพราะการบุกรุกได้สิทธิ์เท่ากับโปรแกรมที่ถูกเจาะ วิศวกรจึงให้แต่ละโปรแกรมเข้าถึงเฉพาะสิ่งที่จำเป็นจริง ๆ เท่านั้น
ซอฟต์แวร์รุ่นเก่าเป็นความเสี่ยงในตัวมันเอง การแก้ไขครั้งนี้ครอบคลุมเฉพาะ PHP รุ่นล่าสุด เว็บที่ยังใช้ PHP 8.1 หรือเก่ากว่าจึงถูกเรียกร้องให้อัปเกรด
และวิธีค้นพบเองก็เปลี่ยนไป Wiz ระบุว่าเครื่องมือ AI ทำให้ช่องโหว่เหล่านี้ใช้โจมตีได้จริง และเรียกมันว่าจุดเปลี่ยนของยุค AI พูดอีกอย่างคือ เครื่องมือแบบเดียวกันช่วยได้ทั้งฝ่ายป้องกันและฝ่ายโจมตี
แพตช์ ซ่อมรอยร้าวแทนการเฝ้ามัน ภาพนิ่งสร้างด้วย AIติดตั้งแพตช์อย่างรวดเร็ว ให้โปรแกรมเข้าถึงน้อยที่สุดเท่าที่จำเป็น เลิกใช้รุ่นที่ไม่ได้รับการแก้ไขแล้ว ปิดเว็บไซต์เมื่อไม่แน่ใจ ชั้นของการป้องกัน เช้าวันรุ่งขึ้น ห้องปฏิบัติการเฝ้าดูทราฟฟิกหลังการอัปเดต ภาพนิ่งสร้างด้วย AI
PHP 5 ออกปี 2004: รุ่นเก่าสุดที่ CERT-EU ระบุว่าอาจได้รับผล ย้อนไปไกลแค่ไหน
บทส่งท้าย บทส่งท้าย
ไคลเอนต์ถาม เซิร์ฟเวอร์ตอบ เว็บยังทำงานแบบเดียวกับปี 1990
จากเครื่องเดียวที่เซิร์นสู่บทสนทนานับไม่ถ้วนในแต่ละวัน เว็บยังทำงานแบบเดียวกับปี 1990 คือไคลเอนต์ถาม แล้วเซิร์ฟเวอร์ตอบ
แต่โปรแกรมที่ตอบเราเขียนขึ้นโดยคน ช่องโหว่ PHP อยู่โดยไม่มีใครสังเกตมานานกว่าสิบปี จนเครื่องมือ AI ช่วยค้นพบ และเครื่องมือเดียวกันจะค้นพบอีก
เว็บจึงเดินหน้าด้วยการแข่งขัน ระหว่างคนที่หาช่องโหว่กับคนที่ติดตั้งการแก้ไข โทรศัพท์และแล็ปท็อปของเราก็อยู่ในการแข่งขันนี้ด้วย ทุกครั้งที่มีอัปเดตรอให้ติดตั้ง
1989 ข้อเสนอสร้างเว็บ1990 เซิร์ฟเวอร์และเบราว์เซอร์แรก1994 Personal Home Page Tools1999 รายการ CVE เปิดสาธารณะ2014 Heartbleed2026 แพตช์ PHP2Shellจากเซิร์นถึง PHP2Shell
10+ ปี ที่ช่องโหว่ PHP ไม่มีใครสังเกต (Paubox)
ไม่กี่สัปดาห์ ที่ทีมซึ่งใช้ AI ช่วยใช้ค้นพบในเดือนสิงหาคม ซ่อนอยู่ต่อหน้าต่อตา ติดตั้งอัปเดตระบบและแอป อัปเดตเบราว์เซอร์ให้เป็นรุ่นล่าสุด ลบแอปที่ไม่ได้ใช้แล้ว ฝั่งของเราในการแข่งขัน