hosting, web hosting, host, web host, webhosting, โฮสติ้ง, เว็ปโฮสติ้ง, เว็บโฮส, เว็บโฮสติ้ง, เว็ปโฮสติ้ง,โฮส,โฮสต์, จดโดเมน,เช่า host, เวบโฮส,เวบโฮสติ้ง ,เวปโฮส, เวปโฮสติ้ง, webhost, thailand service web hosting, domain registration, domain, daily backup
ประกาศวันที่ 21-10-2007 18:00:42

ปัญหาการใช้งาน register globals กับระบบความปลอดภัยของ Server


เรียนท่านลูกค้า

เนื่องจาก Server ของเราแต่ละเครื่อง ได้ติดตั้ง php ตามมาตรฐานที่ทาง php.net ได้ประกาศไว้หลายปีก่อนแล้ว (ทางเราได้ทำการ update patch สำหรับบางเครื่อง Server เมื่อเร็ว ๆ นี้)

http://th.php.net/manual/en/security.globals.php

ซึ่งแนะนำให้ทำการ Register Global = off ไว้ เพื่อป้องกันการโดนโจมตีผ่าน script ซึ่งการตั้งค่าดังกล่าวมีผลให้ผู้พัฒนาที่พัฒนาโปรแกรมแบบ global จะมีปัญหาในการรับส่งค่าตัวแปรดังนี้

การส่งค่าตัวแปรด้วยวิธี GET เป็นการส่งค่าผ่าน URL เช่น http://www.naxza.com/article.php?id=121 ในลักษณะนี้มีการส่งค่าตัวแปร id เข้าไปที่ไฟล์ article.php ซึ่งหากเป็นการ on register global ไว้ จะสามารถรับค่าได้คือ

echo $id;

แต่เมื่อ off register global แล้ว จะต้องรับค่าด้วย

echo $_GET['id'];

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

ทั้งนี้แนวทางแก้ไขปัญหามีด้วยกันหลายวิธี เช่น

1. ทำการแก้ไข code ที่เขียนรับค่าแบบเก่า $id มาเป็น $_GET['id'] หรือ $_POST['id'] คือรับให้ถูกต้องตามหลักการรับค่ามา Method (วิธีการ) ที่ถูกต้องครับ สำหรับท่านลูกค้าที่ใช้ opensource เช่น phpnuke mambo ต้องตรวจสอบกับทางผู้พัฒนว่า version ใด ได้มีการแก้ไขปัญหาดังกล่าวแล้วหรือไม่ อย่างไรครับ

(Note: phpnuke น่าจะต้องใช้เป็น phpnuke 6.5 ครับ อ้างอิงจาก http://nuke.thaihealth.net/article55.html)

2. ทำการแทรก script ด้านล่างนี้ลงไปที่แต่ละไฟล์ที่มีการรับค่าตัวแปร โดยแทรกไว้บรรทัดบนสุดเลยครับ

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is a fix if register_globals is turned off
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
if(!$PHP_SELF){
if($HTTP_POST_VARS) {extract($HTTP_POST_VARS, EXTR_PREFIX_SAME, "post_");}
if($HTTP_GET_VARS) {extract($HTTP_GET_VARS, EXTR_PREFIX_SAME, "get_");}
if($HTTP_COOKIE_VARS) {extract($HTTP_COOKIE_VARS, EXTR_PREFIX_SAME,"cookie_");}
if($HTTP_ENV_VARS) {extract($HTTP_ENV_VARS, EXTR_PREFIX_SAME, "env_");}
}
if($PHP_SELF == ""){ $PHP_SELF = $HTTP_SERVER_VARS[PHP_SELF]; }


วิธีนี้จะทำให้ระบบความปลอดภัยอยู่ที่ 70-80% ในส่วนของ register globals security ครับ

3. เป็นวิธีที่ง่ายที่สุดครับ คือ ให้ server ทำการเปิดระบบ register globals ของเว็บไซต์คุณให้เป็น on (เฉพาะเว็บไซต์คุณ) ซึ่งก็จะทำให้คุณไม่ต้องแก้ไข code ใด ๆ เลยครับ แต่ในกรณีนี้ ทางคุณต้องรับทราบปัญหาว่าอาจจะโดนโจมตีได้ทุกเมื่อ และเราไม่สามารถปกป้องข้อมูลใด ๆ ของคุณได้เลย และหากพบปัญหาใดที่อาจจะก่อให้เกิดการบั่นทอนประสิทธิภาพการทำงานของ Server โดยรวมตาม นโยบายการใช้งาน ทางเราจะทำการระงับเว็บไซต์ของท่านทันทีครับ (สำหรับลูกค้าที่มีความจำเป็นต้องใช้วิธีนี้ให้แจ้งชื่อเว็บไซต์ และความต้องการเข้ามาทาง E-mail ครับ)

จึงเรียนมาเพื่อทราบ
Naxza Web Hosting

รายละเอียดเพิ่มเติม

http://www.narisa.com/blog/patrickz/index.php?showentry=346
http://www.thaicdrom.net/articles/4/1/Register-global-problem-PHP--NEOaAeI-Register-Global-I-PHP/Page1.html
http://vuthi.blogspot.com/2005/12/php-44.html
http://www.thaihosttalk.com/th1/index.php?topic=2944.0;wap2
http://www.thainuke.org/modules.php?name=Forums&file=viewtopic&t=13985
http://72.14.253.104/search?q=cache:iZf0V2mEOHkJ:www.opentle.org/th/node/4667+%E0%B8%9B%E0%B8%B1%E0%B8%8D%E0%B8%AB%E0%B8%B2+register+global&hl=th&ct=clnk&cd=17&gl=th


hosting, web hosting, host, web host, webhosting, โฮสติ้ง, เว็ปโฮสติ้ง, เว็บโฮส, เว็บโฮสติ้ง, เว็ปโฮสติ้ง,โฮส,โฮสต์, จดโดเมน,เช่า host, เวบโฮส,เวบโฮสติ้ง ,เวปโฮส, เวปโฮสติ้ง, webhost, thailand service web hosting, domain registration, domain, daily backup

HOME   |   ABOUT US   |   HOSTING   |   DOWNLOAD   |   SUPPORT   |   CONTACTS
Copyright © Naxza.com,Since 2004. All Rights Reserved. Privacy policy. PageRank   monitoring site uptime web