เรียน เจ้าหน้าที่ดูแลเว็บไซต์หน่วยงาน

เรื่อง การกำหนดค่าคอนฟิกของภาษา PHP บนเซิร์ฟเวอร์บริการเว็บโฮสติ้งหน่วยงาน


สำนักบริการคอมพิวเตอร์จะปรับปรุงค่าคอนฟิกของโปรแกรม PHP บนเซิร์ฟเวอร์บริการเว็บโฮสติ้งหน่วยงาน เพื่อป้องกันความปลอดภัยของระบบบริการพื้นที่โฮมเพจหน่วยงานมหาวิทยาลัยเกษตรศาสตร์ ดังนี้

1. ปิดค่าพารามิเตอร์เกี่ยวกับการรับค่าตัวแปรแบบโกลบอล (Global variables) จาก HTTP Request โดยการปิดค่าการรับค่าตัวแปร (register_globals=off) ที่ผ่าน get,post หรือ session ของภาษา PHP แบบที่มีการรับค่าตัวแปรจากชื่อตัวแปรโดยตรง เช่น $var1 จะต้องแก้ไขการรับค่าตัวแปรแบบตัวแปรระบบ เช่น $_POST["var1"], $_GET["var1"] หรือ $_REQUEST["var1"] เป็นต้น ดังตัวอย่าง การส่งค่า var1 ไปที่หน้า submit.php http://www.mydomian.com/submit.php?var1="foo"

- แก้ไขจาก: การรับค่าตัวแปรจากชื่อตัวแปรโดยตรง [ค่า register_globals = on ]

  1. <?php
  2. if ($var1 == "foo" )
  3. return true;
  4. ?>

- แก้ไขเป็น: การรับค่าตัวแปรโดยรับค่าจากตัวแปรระบบ [ค่า register_globals = off ]

  1. <?php
  2. $var1 = $_REQUEST["var1"];
  3. if ($var1 == "foo" )
  4. return true;
  5. ?>

2. ปิดค่าพารามิเตอร์เกี่ยวกับการจัดการเรื่องการตัดอักขระ (magic_quotes_gpc = off) เช่น การตัดเครื่องหมายอัญประกาศ(quote)จาก HTTP Request ที่มาพร้อมกับเครื่องหมายแบ็กสแลช เพื่อเป็นการป้องกันการโดนโจมตีแบบ SQL Injection ซึ่งเป็นการโจมตีระบบด้วยการเปลี่ยนคำสั่ง SQL จากการส่งฟอร์มหรือจากข้อมูลแบบ URL

3. ปิดค่าพารามิเตอร์เกี่ยวกับการแสดงข้อความข้อผิดพลาด (display_errors = off) บนเบราเซอร์ เพื่อเป็นการป้องกันมิให้หน้าเว็บไซต์แสดงข้อความข้อผิดพลาดในกรณีที่หน้าเว็บทำงานไม่ถูกต้อง ซึ่งข้อความ ข้อผิดพลาดที่แสดงบนหน้าเว็บนั้นอาจจะประกอบด้วยชื่อผู้ใช้ รหัสผ่าน และชื่อฐานข้อมูลที่ใช้งาน ทำให้ผู้บุกรุกใช้ ข้อมูลดังกล่าวโจมตีระบบได้

4. ปิดค่าพารามิเตอร์เกี่ยวกับการเปิดไฟล์ด้วยคำสั่ง fopen จากเซิร์ฟเวอร์อื่น (allow_url_fopen = off) เพื่อป้องกันการเปิดไฟล์ที่แฝงด้วยโค๊ดโจมตีระบบเข้ามาทำงานบนเซิร์ฟเวอร์

5. กำหนดค่าพารามิเตอร์เกี่ยวกับขนาดของไฟล์ที่จะอัพโหลดขึ้นบนเซิร์ฟเวอร์ (post_max_size = 8M and upload_max_filesize = 8M ) โดยกำหนดให้ไฟล์มีขนาดไม่เกิน 8 เมกะไบต์

6. ปิดค่าพารามิเตอร์เกี่ยวกับแท๊กของ PHP (short_open_tag = off) โดยการเขียนภาษา PHP จะต้อง ระบุแท๊กเป็น <?php ตามมาตรฐานของ XML ทั้งนี้เพื่อทำให้การเขียนโปรแกรมผสมระหว่าง PHP และ XML สามารถทำงานร่วมกันได้ หากระบุแท๊กของ PHP เป็น <? จะทำให้ตัวแปลภาษาของ PHP ไม่สามารถแปลโค๊ดที่เป็น XML ได้

ทั้งนี้การปรับปรุงค่าคอนฟิกดังกล่าวจะช่วยทำให้เพิ่มเว็บไซต์ของท่านที่เขียนด้วยภาษา PHP มีความปลอดภัย (secure code) มากขึ้น และลดความเสี่ยงต่อการถูกเจาะข้อมูลอีกด้วย


จึงเรียนมาเพื่อโปรดพิจารณาดำเนินการต่อไป


ขอแสดงความนับถือ

สำนักบริการคอมพิวเตอร์