ผมใช้ ldaphack9 กับลายไทยเวอร์ชั่น MamboLaiThaiGlobalV4[1].5.3h-StableAndSecurityPatch1



 ผมใช้ ldaphack9 กับลายไทยเวอร์ชั่น MamboLaiThaiGlobalV4[1].5.3h-StableAndSecurityPatch1

 หนิดหนึ่งถ้าใช้ ldaphack9 กับลายไทยแล้ว

 ในเว็บ admin จะ error และ login เข้าไปไม่ได้


 เหอๆ แต่เกือบจะแก้ไม่ได้แหนะ

 โชคดีจริงที่เดาถูก

 ต้องไปแก้ไฟล์ ldaphack9includesmambo.php

 ให้แทนที่โคดทั้งหมดของไฟล์ด้วยโคดนี้

 -------------------------------------------------------------------------------


   <?php
 /**
 * @version $Id: index.php,v 1.6 2005/11/21 11:57:50 csouza Exp $
 * @package Mambo
 * @copyright (C) 2000 - 2005 Miro International Pty Ltd
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 * Mambo is Free Software
 */

 // fix to address the globals overwrite problem in php versions < 4.4.1
 $protect_globals = array('_REQUEST', '_GET', '_POST', '_COOKIE', '_FILES',
 '_SERVER', '_ENV', 'GLOBALS', '_SESSION');
 foreach ($protect_globals as $global) {
     if ( in_array($global , array_keys($_REQUEST)) ||
          in_array($global , array_keys($_GET))     ||
          in_array($global , array_keys($_POST))    ||
          in_array($global , array_keys($_COOKIE))  ||
          in_array($global , array_keys($_FILES))) {
         die("Invalid Request.");
     }
 }

 /** Set flag that this is a parent file */
 define( "_VALID_MOS", 1 );

 if (!file_exists( '../configuration.php' )) {
         header( 'Location: ../installation/index.php' );
         exit();
 }

 require_once( '../configuration.php' );
 require_once( '../includes/mambo.php' );
 include_once ( $mosConfig_absolute_path .'/language/'. $mosConfig_lang
 .'.php' );
 // adminLanguage Language
 if ($mosConfig_alang === NULL) {
 include_once ($mosConfig_absolute_path."/language/admin_english.php"); }
         else {
                 if (file_exists
 ($mosConfig_absolute_path."/language/admin_".$mosConfig_alang.".php")) {
                         include_once
 ($mosConfig_absolute_path."/language/admin_".$mosConfig_alang.".php");
                         }
                 }

 $adminLanguage =& new adminLanguage();
 $database = new database( $mosConfig_host, $mosConfig_user,
 $mosConfig_password, $mosConfig_db, $mosConfig_dbprefix );
 $database->debug( $mosConfig_debug );
 $acl = new gacl_api();

 $option = mosGetParam( $_REQUEST, 'option', NULL );

 // mainframe is an API workhorse, lots of 'core' interaction routines
 $mainframe = new mosMainFrame( $database, $option, '..', true );

 if (isset( $_POST['submit'] )) {
         /** escape and trim to minimise injection of malicious sql */
         $usrname         = $database->getEscaped( trim( mosGetParam( $_POST, 'usrname',
 '' ) ) );
         $pass                 = $database->getEscaped( trim( mosGetParam( $_POST, 'pass', '' )
 ) );

         if (!$pass) {
                 echo "<script>alert('".$adminLanguage->A_ALERT_ENTER_PASSWORD."');
 document.location.href='index.php';</script> ";
         } else {
                 $pass = md5( $pass );
         }

         $query = "SELECT COUNT(*)"
         . " FROM #__users"
         . " WHERE ( LOWER( usertype ) = 'administrator'"
         . " OR LOWER( usertype ) = 'superadministrator'"
         . " OR LOWER( usertype ) = 'super administrator' )"
         ;
         $database->setQuery( $query );
         $count = intval( $database->loadResult() );
         if ($count < 1) {
                 echo "<script>alert(""._LOGIN_NOADMINS.""); window.history.go(-1);
 </script> ";
                 exit();
         }

         $query = "SELECT * FROM #__users WHERE username='$usrname' AND
 block='0'";
         $database->setQuery( $query );
         $my = null;
         $database->loadObject( $my );

         /** find the user group (or groups in the future) */
         $grp                         = $acl->getAroGroup( $my->id );
         $my->gid                 = $grp->group_id;
         $my->usertype         = $grp->name;

         if ($my->id) {
                 // EXTERNAL AUTH START
                 if ($my->password{0}=="@") {
                         $pluginid = substr($my->password,  1);
                         $authplugins = include( $mosConfig_absolute_path .
 "/includes/authentication/plugins.php" );
                         foreach ($authplugins as $pi) {
                                 // only use published external systems of the proper type.
                                 if (($pluginid == $pi->getID()) && ($pi->isPublished())) {
                                         $userattributes = array();
                                         if ($pi->authenticate($usrname,$clearpass,$userattributes)) {
                                                 $pass = $my->password;
                                                 break;
                                         }
                                 }
                         }
                 }
                 // EXTERNAL AUTH END
                 if (strcmp( $my->password, $pass )
                 || !$acl->acl_check( 'administration', 'login', 'users', $my->usertype
 )) {
                         echo "<script>alert('".$adminLanguage->A_ALERT_INCORRECT."');
 document.location.href='index.php';</script> ";
                         exit();
                 }

                 session_name( md5( $mosConfig_live_site ) );
                 session_start();

                 $logintime         = time();
                 $session_id = md5( "$my->id$my->username$my->usertype$logintime" );
                 $query = "INSERT INTO #__session"
                 . " SET time='$logintime', session_id='$session_id', "
                 . "userid='$my->id', usertype='$my->usertype', username='$my->username'"
                 ;
                 $database->setQuery( $query );
                 if (!$database->query()) {
                         echo $database->stderr();
                 }

                 $_SESSION['session_id']                 = $session_id;
                 $_SESSION['session_user_id']         = $my->id;
                 $_SESSION['session_username']         = $my->username;
                 $_SESSION['session_usertype']         = $my->usertype;
                 $_SESSION['session_gid']                 = $my->gid;
                 $_SESSION['session_logintime']         = $logintime;
                 $_SESSION['session_userstate']         = array();

                session_write_close();
                 /** cannot using mosredirect as this stuffs up the cookie in IIS */
                 echo "<script>document.location.href='index2.php';</script> ";
                 exit();
         } else {
                 echo "<script>alert('".$adminLanguage->A_ALERT_INCORRECT_TRY."');
 document.location.href='index.php';</script> ";
                 exit();
         }
 } else {
         initGzip();
         $path = $mosConfig_absolute_path . '/administrator/templates/' .
 $mainframe->getTemplate() . '/login.php';
         require_once( $path );
         doGzip();
 }
 ?>


โป้ง-เขียน

 


 

คำสำคัญ (Tags): #ldaphack
หมายเลขบันทึก: 30297เขียนเมื่อ 23 พฤษภาคม 2006 09:56 น. ()แก้ไขเมื่อ 18 มิถุนายน 2012 16:52 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (2)
เนื่องด้วยขณะนี้บุคลากรประจำสำนักส่งเสริมและการศึกษาต่อเนื่องบางท่านมีความคิดที่ผิดแผกไปจากบุคคลอื่นเกี่ยวกับการบันทึกข้อมูลลงในตัวบันทึกข้อมูลที่เรียกว่า Handy Drive หรือ Thump Drive โดยการนำข้อมูลทุกอย่างทั้งที่จำเป็นและไม่จำเป็นเก็บลงไป ซึ่งจะทำให้สิ้นเปลืองเนื้อที่และงบประมาณ

ดังนั้น จึงขอความกรุณาบุคลากรประจำสำนักส่งเสริมและการศึกษาต่อเนื่องทุกท่าน เพื่อให้เป็นที่เข้าใจโดยทั่วกันเกี่ยวกับการแก้ปัญหาตรงจุดนี้ จึงขอแจ้งให้บุคลากรประจำสำนักส่งเสริมและการศึกษาต่อเนื่องทราบว่า Handy Drive หรือ Thump Drive เป็นตัวเคลื่อนย้ายข้อมูลไม่ใช่เป็นตัวบันทึกข้อมูลหรือหากต้องการบันทึกข้อมูลสามารถสำรองไว้ได้ใน Handy Drive หรือ Thump Drive หากข้อมูลนั้นมีขนาดไม่ใหญ่หรือไม่เยอะจนเกินไป แต่หากข้อมูลนั้นมีขนาดใหญ่หรือเยอะจนเกินไปให้ใช้แผ่น CD แทนการบันทึกด้วย Handy Drive หรือ Thump Drive

ขอบคุณครับ
คำสั่งข้างต้นจาก หัวหน้างานเทคโนโลยีและสารสนเทศ ซึ่งเป็นงานที่ตั้งขึ้นโดยผู้บริหารจากความเห็นดังกล่าว ค่อยข้างเป็นความเห็นส่วนตัว ไม่เอื้อต่อการใช้งานตามความเหมาะสมเพราะผู้สั่ง ปกตินั่งทำงานอยู่แต่ในสำนักงานที่มีแต่เครื่องคอมพิวเตอร์ที่ทันสมัย การWrite CD/DVDจึงเป็นเรื่องง่ายๆแต่ผู้ปฏิบัติงานที่ต้องเคลื่อนย้ายสถานที่ปฏิบัติงานอยู่เป็นประจำ ตั้งแต่โรงแรมหรูจนถึงหมู่บ้านในชนบทที่คอมพิวเตอร์ยังไม่ได้เป็นที่แพร่หลาย บ่อยครั้งที่เราจะเจอ มีคอมพิวเตอร์ที่ไม่มีเครื่อง Write งานในแผ่นCD ที่เราพกพาไปปรากฏว่า CD แตกเพราะการเคลื่อนย้ายสถานที่ปฏิบัติงาน ซึ่งที่ผ่านมา เมื่อ Handy Drive ข้อมูลเต็ม แต่ข้อมูลที่มีอยู่ก็ไม่สามารถเก็บไว้ที่สำนักงานได้ต้องพกพาติดตัวไปในพื้นที่ที่ไปปฏิบัติงานเพราะงานมักจะเจอสถานการณ์ที่ไม่สามารถคาดการณ์ได้ ดังนั้นการมีข้อมูล ฐานข้อมูลไว้กับตัวจึงเป็นการรอบคอบที่สุดจึงต้องแก้ไขปัญหาด้วยความที่เราเป็นผู้น้อย ไม่มีอำนาจในการซื้อ Handy Drive  file ที่จะเก็บก็ใหญ่เกินกว่าที่จะเก็บไว้ในดิสเก็ต ในขณะที่งานเร่งด่วน (เราในฐานะผู้ปฏิบัติ ที่เงินเดือนแทบไม่พอในแต่ละเดือน ) จึงจำเป็นต้องอนุมัติ เงินส่วนตัว เพราะเป็นงบประมาณแหล่งเดียวที่เรามีอำนาจอนุมัติ ซื้อ Handy Drive เพื่อมาใช้งานของรัฐ หากเกิดขึ้นไม่บ่อยเราก็พอขอยืมเงินจากผู้มีอุปการคุณมาเสียสละให้หลวงได้ แต่ถ้าเกิดขึ้นบ่อย ลูกเราคงอดข้าวนั่งกินแกลบกันแน่          จึงอยากขอความเห็นจากผู้มีความรู้ด้านนี้ ช่วยให้ความเห็น และเหตุผลของการใช้งานวัสดุอุปกรณ์ ทางคอมพิวเตอร์ที่เรียกว่า  Handy Drive ด้วย เพื่อให้เจ้านายเราเข้าใจและปรับเปลี่ยนคำสั่งให้เหมาะสมกับสภาพความเป็นจริงในการทำงานด้วยเถิดก่อนที่เราจะต้องควักกระเป๋า ซี้อ Handy Drive อันต่อไป ถ้าข้อมูลใดไม่จำเป็นต้องใช้ เราจะเอาติดตัวไปทำไมให้หนัก ซึ่งโดยปกติเราจะ back up ข้อมูลใน Handy Drive ไว้ใน CD เสมอ / ขอบคุณล่วงหน้าค่ะสำหรับทุกท่านที่กรุณาอ่าน และให้ความเห็น

 


เว็บไซต์ iKnow ไอโนว์ => คลังข้อมูลข่าวสารแห่งแรกของไทย ข้อมูลอัพเดทข่าวล่าสุดด้วยเทคโนโลยี RSS (Really Simple Syndicate) สามารถค้นหาข่าวสารจากหนังสือพิมพ์ทุกฉบับครบถ้วนอย่างสมบูรณ์แบบที่สุด อ่านข่าวล่าสุดจากกว่า 30 สำนักข่าวชั้นนำ ทั่วไทย ไม่ต้องเปิดหลายเว็บ เปิดเว็บไอโนว์เพียงเว็บเดียวเท่านั้น สมกับสโลแกนที่ว่า News is useless without iKnow !!  เพียงแค่คลิ๊กที่นี่ www.tarad.com/iknow


ไอโนว์ => คลังข้อมูลข่าวสารแห่งแรกของไทย
พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท