แกะรอย CGI เพื่อเขียนสคริปต์เรียกเพจเจอร์/มือถือผ่านเว็บ

ผู้เขียน: ทรงเกียรติ ภาวดี
ISBN: 974-87003-0-5
จำนวนหน้า: xxx หน้า
ขนาด: 14.5 x 21 ซม.
รูปแบบหนังสือ: หนังสือขาวดำ

ราคาปก: 245 บาท
ราคาสั่งซื้อ: 210 บาท
ส่งหน้านี้ให้เพื่อน  


  • เรียนรู้ทุกๆ เรื่องที่เกี่ยวข้อง อย่างละเอียดและเป็นระบบ ทั้งโพรโตคอล HTTP, การส่งข้อมูลจากฟอร์มไปยัง CGI ในเซิร์ฟเวอร์, การควบคุม CGI ในเซิร์ฟเวอร์ของตนเองและของผู้อื่นให้ทำงานตามสั่ง ฯลฯ
  • เปิดเผยเทคนิคการเขียนสคริปต์ CGI เพื่อส่งข้อความยาวไม่จำกัด, ตั้งเวลาการส่งอัตโนมัติ และวิธีตรวจสอบผลการส่งข้อความทุกแง่มุม
  • ตีแผ่ชั้นเชิง CGI ระหว่างผู้ให้บริการเพจเจอร์/มือถือและนักแกะสคริปต์ CGI อิสระ, กลยุทธ์หลอกล่อต่างๆ รวมทั้งวิธีการป้องกันและแก้ไข
  • เฉลยวิธีเขียนสคริปต์สร้างซ็อกเก็ตให้ทำงานเป็นไคลเอนต์และเซิร์ฟเวอร์ ด้วยโค้ดเพียงไม่กี่บรรทัด


บทที่ 1 บทบาทของโพรโตคอล HTTP

อยากเขียนโปรแกรมสื่อสารผ่านเว็บ ต้องเข้าใจโพรโตคอลให้ทะลุเสียก่อน เพียงแค่คำว่าโพรโตคอลก็ทำให้บางคนขยาดว่ายากแน่ แต่จริงๆ แล้วไม่ใช่เลย ในบทนี้จะไขความลับ HTTP ว่ามีกระบวนการทำงานที่ทำให้เซิร์ฟเวอร์กับไคลเอนต์ติดต่อสื่อสารกันได้อย่างไร

  • HTTP โพรโตคอลนี้สำหรับ WWW
  • วิธีการติดต่อของโพรโตคอล HTTP
  • อะไรอยู่ในเนื้อไฟล์ที่รับ-ส่ง
  • โครงสร้างโพรโตคอล HTTP
  • ข้อความร้องขอ (request)
  • ข้อความตอบสนอง (response)
  • เฮดเดอร์คืออะไร
  • เมธอดร้องขอไม่ได้มีแค่ GET
  • สารพัดวิธีร้องขอไปยังเซิร์ฟเวอร์
  • ทดลองโพรโตคอล HTTP ด้วย Telnet
  • ขออะไรจากเซิร์ฟเวอร์ได้บ้าง

บทที่ 2 ทําความเข้าใจ CGI กับฟอร์ม

CGI คือตัวกลางที่ทำให้เซิร์ฟเวอร์กับไคลเอนต์ติดต่อกันได้อย่างยืดหยุ่น ในบทนี้จะอธิบายการทำงานระหว่าง CGI ในเซิร์ฟเวอร์กับฟอร์มในเบราเซอร์ รวมทั้งรูปแบบการส่งข้อมูลจากฟอร์มในเบราเซอร์ไปให้ CGI ในเซิร์ฟเวอร์ และวิธีที่ CGI จัดการกับข้อมูลที่ได้รับ เพื่อนำไปใช้งาน

  • CGI คืออะไรกันแน่
  • ใช้อะไรเขียน CGI ได้บ้าง
  • ต้องเรียกว่า "โปรแกรม CGI" หรือ "สคริปต์ CGI"
  • ไฟล์ CGI เก็บอยู่ที่ไหนและใช้นามสกุลอะไร
  • แอบดูซอร์ซโค้ดของสคริปต์ CGI ได้หรือไม่
  • สั่งให้ CGI ทำงานผ่านฟอร์ม
  • รู้ได้อย่างไรว่าเป็น GET หรือ POST
  • ทำไมต้องเข้ารหัสข้อมูลก่อนส่ง
  • ใช้ GET หรือ POST ดี

บทที่ 3 แอบสั่ง CGI ให้ทำงาน

การส่งข้อมูลจากฟอร์มไปให้ CGI ในเซิร์ฟเวอร์มีหลายวิธี แต่ใช่ว่าเราจะส่งข้อมูลไปให้ CGI ในเซิร์ฟเวอร์ได้ทุกแห่ง เพราะบางแห่งอาจมีการหลอกล่อและป้องกันไว้ ซึ่งในบทนี้เราจะมาเรียนรู้เทคนิคการป้องกันเหล่านั้นและวิธีการแก้ไข เพื่อแอบเรียก CGI ในเซิร์ฟเวอร์ของคนอื่นให้ทำงาน

  • ลองแกะอินพุตในฟอร์ม
  • สร้างเป็นไฟล์ HTML ของเราเอง
  • ทดลองส่งข้อมูลจากฟอร์มที่สร้างขึ้นเอง
  • ตรวจสอบดูว่า CGI ในเซิร์ฟเวอร์แกร่งแค่ไหน
  • เราส่งข้อมูลเข้า CGI ได้ทุกเซิร์ฟเวอร์หรือเปล่า
  • ความลับอยู่ที่ตัวแปรแวดล้อม
  • ที่มาของตัวแปรแวดล้อม
  • หนทางใช้ตัวแปรแวดล้อมให้เกิดประโยชน์
  • ป้อนข้อมูลผ่านฟอร์มหรือ URL ก็เช็กได้
  • เขียน CGI ปลอมเฮดเดอร์หลอกเซิร์ฟเวอร์
  • สร้างเว็บให้บริการแบบง่ายๆ
  • พึงระวังไว้! อันตรายของเว็บให้บริการ

บทที่ 4 ซ็อกเก็ตกับการเขียนโปรแกรมไคลเอนต์

การติดต่อผ่านเครือข่ายระหว่างไคลเอนต์และเซิร์ฟเวอร์ จะใช้สิ่งที่เรียกว่า "ซ็อกเก็ต" เป็นตัวเชื่อมโยงให้ทั้งสองฝั่งรับ-ส่งข้อมูลกันได้ ในบทนี้เราจะฝึกเขียนสคริปต์เพื่อสร้างซ็อกเก็ตทางฝั่งไคลเอนต์ สำหรับติดต่อร้องขอข้อมูลจากเซิร์ฟเวอร์ต่างๆ ภายในเครือข่ายเดียวกันหรือผ่านอินเทอร์เน็ต

  • แนวคิดการเขียนโปรแกรมเครือข่าย
  • เรื่องควรรู้ก่อนใช้งานซ็อกเก็ต
  • ข้อมูลเบื้องต้นที่ต้องทราบก่อนสร้างซ็อกเก็ต
  • เริ่มด้วยการสร้างซ็อกเก็ต
  • หาแอดเดรสเตรียมไว้ให้ซ็อกเก็ต
  • กำหนดแอดเดรสให้กับซ็อกเก็ต
  • เชื่อมโยงซ็อกเก็ตให้ถึงกัน
  • ความลับของหมายเลขพอร์ต
  • ขอข้อมูลจากเซิร์ฟเวอร์ผ่านซ็อกเก็ต
  • ไคลเอนต์ต้องตัดการเชื่อมต่อหรือเปล่า
  • ปัญหาของการหาแอดเดรสไม่เจอ
  • ปรับปรุงสคริปต์ให้ยืดหยุ่นมากขึ้น
  • ประยุกต์ใช้งานอ่านไฟล์นามสกุล .js
  • ประยุกต์ใช้งานอ่านไฟล์รูปกราฟิก
  • ทำอย่างอื่นได้อีกไหม

บทที่ 5 เขียนสคริปต์ให้ทำงานเป็นเซิร์ฟเวอร์

เมื่อเขียนสคริปต์ทำงานเป็นไคลเอนต์ได้แล้ว ในบทนี้จะให้ฝึกเขียนสคริปต์ทำงานเป็นเซิร์ฟเวอร์บ้าง ซึ่งการทำงานของสคริปต์ทางฝั่งเซิร์ฟเวอร์ จะละเอียดอ่อนกว่าไคลเอนต์มาก เพราะต้องมีการ "แตกโพรเซส"เพื่อรองรับการติดต่อจากไคลเอนต์ ที่อาจร้องขอเข้ามาพร้อมๆ กันหลายราย

  • เตรียมสคริปต์ไคลเอนต์กันก่อน
  • ลงมือเขียนสคริปต์เซิร์ฟเวอร์
  • ส่งข้อมูลจากไคลเอนต์ไปยังเซิร์ฟเวอร์
  • ถ้าเซิร์ฟเวอร์จบการทำงานกะทันหันจะเกิดอะไรขึ้น
  • ใช้โปรแกรม Telnet และเว็บเบราเซอร์เป็นไคลเอนต์
  • "โพรเซสแม่" แตก "โพรเซสลูก" ช่วยทำงาน
  • ดูสถานะของโพรเซส
  • เขียนสคริปต์ให้แตกโพรเซสลูก
  • สคริปต์เซิร์ฟเวอร์แตกโพรเซสก่อน…
  • …แล้วไคลเอนต์ก็แตกโพรเซสเหมือนกัน
  • ทดลองเซิร์ฟเวอร์และไคลเอนต์
  • เซิร์ฟเวอร์รองรับไคลเอนต์ได้มากกว่าหนึ่ง
  • chat chat chat ทำได้อย่างไร
  • เขียนสคริปต์สร้างเซิร์ฟเวอร์ให้บริการ WWW
  • ไคลเอนต์ขออะไรจากเซิร์ฟเวอร์
  • ทดสอบเซิร์ฟเวอร์
  • ช่องโหว่ของเซิร์ฟเวอร์
  • โพรเซสลูกของเซิร์ฟเวอร์กลายเป็น "ผีดิบ"

บทที่ 6 ทางเลือกของซ็อกเก็ตที่ง่ายกว่า

การเขียนสคริปต์ใน 2 บทที่ผ่านมาใช้คำสั่งตามกระบวนการทำงานของเครือข่ายและซ็อกเก็ต ซึ่งอาจจะดูยาก เพราะคำสั่งและขั้นตอนต่างๆ ถอดแบบมาจากภาษา C ในบทนี้จึงมาชี้แนะทางลัดที่ง่ายขึ้นในการเขียนสคริปต์ทำงานกับซ็อกเก็ต นั่นคือ ใช้โมดูลสำเร็จรูปของ Perl

  • ซ็อกเก็ตเป็นเรื่องง่ายๆ หากใช้แพคเกจ
  • บอกอะไรได้บ้างตอนสร้างซ็อกเก็ต
  • เมธอดของซ็อกเก็ตที่ควรรู้
  • ปัญหาของการใช้แอดเดรสซ็อกเก็ตซ้ำกัน

บทที่ 7 เขียน CGI ส่งข้อความเข้าเพจเจอร์!

บทนี้จะเป็นการประยุกต์เอาความรู้เกี่ยวกับ CGI และการเขียนสคริปต์สร้างซ็อกเก็ตของไคลเอนต์และเซิร์ฟเวอร์ มาเขียน CGI ส่งข้อความเข้าเพจเจอร์ เริ่มตั้งแต่ทำความเข้าใจขั้นตอนต่างๆ ของการส่ง จากนั้นทดลองเขียนสคริปต์ทีละขั้น แล้วพัฒนาจนเป็นสคริปต์ CGI ที่ทำงานได้จริง

  • ส่งข้อความเข้าเพจเจอร์ผ่านอินเทอร์เน็ตได้อย่างไร
  • ส่งได้-ส่งไม่ได้ เราจะรู้ได้อย่างไร
  • เขียนสคริปต์ส่งข้อความเข้าเพจเจอร์
  • เปลี่ยนสคริปต์ให้ทำงานแบบ CGI
  • เตรียมความพร้อมให้ CGI รับข้อมูลจากฟอร์ม
  • แพคเกจ CGI ช่วยให้เขียนสคริปต์รับข้อมูลง่ายขึ้น
  • สร้างฟอร์มสำหรับส่งข้อมูลเข้า CGI

บทที่ 8 เทคนิคสำคัญในการส่งข้อความ

ถึงแม้สคริปต์ CGI ในบทที่ 7 จะทำงานได้แล้วก็ตาม แต่ยังมีข้อจำกัดหลายอย่าง เราจึงควรมาเก็บตกเทคนิคเพิ่มเติมต่างๆ ในบทนี้ เพื่อให้ CGI ทำงานอย่างเต็มประสิทธิภาพ นั่นคือ ส่งข้อความยาวไม่จำกัด, รายงานผลการส่ง, เลือกส่งข้อความเข้าเพจเจอร์ได้หลายค่าย, ตั้งเวลาส่งอัตโนมัติ

  • ส่งข้อความยาวไม่จำกัดได้อย่างไร
  • เลือกบริการส่งเพจได้หลายค่าย
  • ตั้งเวลาการส่งข้อความอัตโนมัติได้อย่างไร

บทที่ 9 ชั้นเชิง CGI ระหว่างฝ่ายรุกกับฝ่ายรับ

สงครามย่อมๆ ระหว่าง CGI ฝ่ายรับ (ผู้ให้บริการเพจเจอร์) กับ CGI ฝ่ายรุก (นักเล่นเว็บอิสระที่เขียน CGI เอง) เกิดขึ้นตลอดเวลา ฝ่ายรับพยายามป้องกันการส่งข้อความจากฝ่ายรุกทุกวิถีทาง ทั้งตรวจสอบและหลอกล่อ ฝ่ายรุกก็พยายามตามแกะไม่ลดละ บทนี้จะเปิดเผยเทคนิคต่างๆ ที่ฝ่ายรุกและฝ่ายรับนำออกมาใช้

  • ยุทธการป้องกันการรุกของฝ่ายรับ
  • กลเม็ดฝ่ายรุกแก้เกมฝ่ายรับ
  • ช่องโหว่ของเซิร์ฟเวอร์ที่ไม่น่ามองข้าม
  • จุดจบของเว็บส่งข้อความเข้าเพจเจอร์
  • ส่งท้ายด้วยเรื่องของโปรแกรมส่งเพจ