/  11
 
เจษฎากานต์แสงรั ตน์
(49050925) 
ความมั ่นคงบนเว็บสาหรับนักพัฒนา
 
(Web Security
 
for Developers)
ปจจุบันประชาชนใชงานอินเทอร์เน็ตเพิ ่มขึ ้นมาก ในป
.
.
2551
ประเทศไทยมีผู   ใชอินเทอร์เน็ตประมาณ
16.1
ลานคน ซึ ่งเพิ ่มขึ ้นจากป
.
.
2550
ถึ
20%
1
 
 ในขณะที ่จานวนผู   ใชอินเทอร์เน็ตทั ่วโลกในเดือน มีนาคม พ
.
.
2552
ก็มีมากกว
1,500
ลานคน
2
มีพัฒนาการใชงานในดานตางๆ นอกเหนือจากการศึกษา การสื ่อสาร ความบันเทิง และขาวสารแลว ผู  ประกอบธุรกิจยังใชอินเทอร์เน็ตเพื ่อประชาสัมพันธ์รวมถึ  ใหบริการซื ้อขายสินคา บริการ และอื ่นๆ อีกเปนจานวนมาก
 
ดังที ่กลาวมาขางตน ผู   ใชหลายคนพยายามหาชองโหวเพื ่อเจาะระบบเว็บไซต์ตางๆ เพื ่อความสนุกของผู   ใช  และเพื ่อตักตวงประโยชน์จากเว็บไซต์ที ่มีความมั ่นคงไมเพียงพอ ผู  พัฒนาและผู  ดูแลระบบควรระมัดระวั และปดชองโหวเหลานี ้เพื ่อไม ใหเกิดปญหากับเว็บไซต์หรือผู   ใชเว็บไซต์
 
เอกสารนี ้จะแนะนาปญหาความมั ่นคงบนเว็บ และวิธีการแก ไขในมุมมองของนักพัฒนาเปนหลัก โดยแนะน เฉพาะปญหาที ่สาคัญเทานั ้
 
1.
 
ข้อควรทราบ
 
1.
 
ผู  เขียนมีจุดประสงค์เพื ่อใหความรู  เกี ่ยวกับการพัฒนาเว็บใหมีความมั ่นคงเทานั ้น ผู  เขียนไมมีเจตนา เผยแผรหรือสนับสนุนการเจาะระบบแตอยางใด
 2.
 
ซอร์สโคดตัวอยางในเอกสารนี ้ ไม ใชตัวอยางซอร์สโคดที ่มีคุณภาพ เนื ่องจากผู  เขียนตองการนาเสนอ เฉพาะประเด็นความมั ่นคงเปนหลัก ผู  อานไมควรยึดวิธีการเขียนซอร์สโคดในเอกสารนี ้เปนตัวอยาง
 
2.
 
ปญหาทั ่วไป
 
ปญหาเหลานี ้เปนปญหาทั ่วไปที ่ทาใหนักเจาะระบบเขามาสรางปญหาที ่ ใหญกวานี ้ ไดงายขึ ้
 
หรือปญหาที ่ นักพัฒนาสวนใหญทราบอยู แล
 
1
 
งานวิจัยขอมูลและสถิติอินเทอร์เน็
 
หนวยปฏิบัติการวิจัยเทคโนโลยีเครือขาย ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แหงชาติ
 
(http://internet.nectec.or.th/webstats/home.iir?Sec=home)
2
Internet World Stats, Miniwatts Marketing Group (http://www.internetworldstats.com/stats.htmI)
 
2
2.1
 
ป ญหาการแสดงข อมูลสาคั ญ 
 
ผู  พัฒนาไมควรเขียนโปรแกรมใหสงหรือแสดงขอมูลที ่เปนความลับในสวนที ่ผู   ใชทั ่วไปสามารถมองเห็นหรื หาพบได โดยงาย เชน การสงคารหัสผานทางยูอาร์แอล
(URL)
หรือฟลด์ซอน
(Hidden Field)
1
ภาพที 
1
ตั วอยางเว็บไซต์ทีสงขอมูลชือผู ใชและรหั สผานทางยูอาร์แอล
 
ซึงดูไดงายจากประวั ติการใชงาน  หรือการดั กแพ็กเกต
กรณีสงขอมูลผานโปรโตคอลทีไมมีการเขารหั ส 
2.2 
 
ป ญหาการแสดงรายชือไฟล์ในไดเรกทอรี
 
หากผู  ดูแลระบบไมปดการแสดงผลรายชื ่อไฟล์ ในไดเรกทอรี
(Directory)
เมื ่อผู   ใชทั ่วไปเรียกที ่อยู ของ  ไดเรกทอรี ใด ผู   ใชจะเห็นรายชื ่อไฟล์ทั ้งหมดในไดเรกทอรีนั ้นไดทันทีหากไดเรกทอรีนั ้นตั ้งคาอนุญาต
(Permission)
ใหผู   ใชทั ่วไปเห็นรายชื ่อไฟล์ทั ้งหมดได
 
2
ภาพที 
ตั วอยางเว็บไซต์ทีไมปดการแสดงรายชือไฟล์ในเว็บเซิฟเวอร์และแสดงใหเห็นไฟล์ทีมีสาคั ญ  ตอระบบใหเห็น 
 
วิธีปองกัน เลือกทาตามวิธี ใดวิธีหนึ ่งตอไปนี ้
 1.
 
ตั ้งคาโปรแกรมเว็บเซิฟเวอร์ ใหปดการแสดงรายชื ่อไฟล์
 
 
32.
 
 ใส ไฟล์ ชื ่
index.html
ไว ในทุกไดเรกทอรีเพื ่อใหผู   ใชเห็นหนาเว็บเปลาแทนที ่จะเห็นรายชื ่อไฟล์
 3.
 
กรณีเซิฟเวอร์ ใชระบบปฏิบัติการยูนิกส์ใหตั ้งคาอนุญาตให โฟลเดอร์ ไม ใหบุคคลทั ่วไปอาน  ไดเรกทอรี ได
 
2.3 
 
ป ญหาการไมตรวจสอบข อมูลทีรั บมาจากผู  ใช 
 
ผู  พัฒนาอาจจากัดขอบเขตของขอมูลที ่ผู   ใชจะสงเขามาได โดยการใสแอตทริบิวต์
(Attribute)
 ในสคริปต์ภาษาเอชทีเอ็มแอล
(HTML)
หรือจาวาสคริปต์ 
(JavaScript)
แตการตรวจสอบเพียงเทานี ้ ไมเพียงพอ เพราะนั เจาะระบบอาจบันทึกหนาเว็บนั ้น แก ไขสคริปต์ที ่ปองกันสวนนี ้แลวเปดหนาเว็บที ่แก ไขขึ ้นมาทางานแทน หรือแมแตการสงคาเขามาผานชองทางอื ่นๆ โดยไม ใชเว็บเบราว์เซอร์ 
(Web Browser)
เช
HTTPRequest
เปนต
 
หากผู  พัฒนาปลอยชองวางนี ้ ไวนักเจาะระบบสามารถกรอกขอมูลที ่ ไมอยู  ในรูปแบบที ่กาหนดไวเพื ่ ประโยชน์ของนักเจาะระบบไดเชน กรอกขอมูลราคาสินคาเปนจานวนเงินติดลบ เปนต
 
วิธีปองกันคือ อยาเชื ่อถือคาใดๆ ที ่ผู   ใชสงเขามา ผู  พัฒนาควรเขียนโปรแกรมตรวจสอบความถูกตองของคาที ่ ผู   ใชสงเขามาทุกคาที ่ฝ งเซิฟเวอร์ดวยเสมอ ถึงแมวาจะตรวจสอบที ่ฝ งเครื ่องผู   ใชแลวก็ตาม
 
2.4 
 
ป ญหาการยอมให ผู  ใช อั พโหลดไฟล์สคริปต์
 
เว็บไซต์ที ่อนุญาตใหผู   ใชอัพโหลดไฟล์อาจไม ไดตรวจสอบประเภทของไฟล์ที ่ผู   ใชอัพโหลดเขามา หากผู   ใช อัพโหลดไฟล์สคริปต์ที ่สั ่งใหทางานบนเว็บเซิฟเวอร์ ไดเชน เอชทีเอ็มแอล
,
พีเอชพี
(PHP)
อาจเปนชองทาง ใหผู  อัพโหลดใชหลอกหลวงผู   ใชเว็บไซต์คนอื ่น หรือสั ่งใหสคริปต์ทางานเพื ่อแก ไข คัดลอก ลบขอมูลได
 
วิธีปองกันคือ ผู  พัฒนาควรเขียนโปรแกรมใหตรวจสอบประเภทของไฟล์ที ่ผู   ใชจะอัพโหลดขึ ้นมากอนเสมอ
 
3.
 
ปญหาการเขียนสคริปต์จากแหลงอื ่
(Cross-Site Scripting: XSS)
เว็บไซต์ที ่รับขอมูลจากผู   ใชมาเก็บไวเพื ่อแสดงผล อาจเปนชองโหว ใหนักเจาะระบบใช ไดหากนักเจาะระบบ กรอกขอความเปนสคริปต์ภาษาเอชทีเอ็มแอลหรือจาวาสคริปต์ลงไป
3
เช
 
 
ขอความ รูปภาพ สื ่อตางๆ เพื ่อโฆษณา หรือหลอกลวงผู   ใชอื ่
 
 
สคริปต์แก ไขเนื ้อหาในหนานั ้
 
 
สคริปต์สงผู   ใช ไปยังเว็บไซต์อื ่
 
3.1
 
ตั วอยาง 
 
ตัวอยางเว็บสงขอความ
(Shoutbox)
อยางงายดวยซอร์สโคดภาษาพีเอชพีตามซอร์สโคดที ่
1
ดานลางนี ้
 
 โดยจะไดหนาตาเว็บเพจดังภาพที ่ 
3
ซอร์สโคดที
1
ตั วอยางเว็บสงขอความทีพั ฒนาดวยภาษาพีเอชพี
 
<?php$hostname = 'localhost';$username = 'root';$password = 'YouShouldNotKnowThis!;$databaseName = 'yourDatabaseName'?>
3
PHP Security Consortium (http://phpsec.org/projects/guide/2.html#2.3)

Share & Embed

More from this user

Add a Comment

Characters: ...