More fixes for sql_patches
authorRoland Häder <roland@mxchange.org>
Fri, 28 Mar 2008 19:20:06 +0000 (19:20 +0000)
committerRoland Häder <roland@mxchange.org>
Fri, 28 Mar 2008 19:20:06 +0000 (19:20 +0000)
inc/gen_sql_patches.php
inc/mysql-manager.php

index 2e59c8d..8fd4b43 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
-        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
-        require($INC);
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
 }
 
 // Check for version of sql_patches
 if (GET_EXT_VERSION("sql_patches") < "0.3.6") return false;
 
 // Check if there is no scrambling string
-if (empty($_CONFIG['pass_scramble']))
-{
-        // Generate 40 chars long scramble string
-        $scrambleString = genScrambleString(40);
-
-        // ... and store it there for future usage
-        $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET pass_scramble='%s' WHERE config=0 LIMIT 1",
-         array($scrambleString), __FILE__, __LINE__);
-
-        // Also remember it in config
-        $_CONFIG['pass_scramble'] = $scrambleString;
-        unset($scrambleString);
+if (empty($_CONFIG['pass_scramble'])) {
+       // Generate 40 chars long scramble string
+       $scrambleString = genScrambleString(40);
+
+       // ... and store it there for future usage
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET pass_scramble='%s' WHERE config=0 LIMIT 1",
+        array($scrambleString), __FILE__, __LINE__);
+
+       // Also remember it in config
+       $_CONFIG['pass_scramble'] = $scrambleString;
+       unset($scrambleString);
 }
 
 // Check if there is no master salt string
-if (empty($_CONFIG['master_salt']))
-{
-        // Generate the master salt which is the first chars minus 40 chars of this random hash
-        // We do an extra scrambling here...
-        $masterSalt = scrambleString(substr(generateHash(GEN_PASS(rand(128, 256))), 0, -40));
-
-        // ... and store it there for future usage
-        $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET master_salt='%s' WHERE config=0 LIMIT 1",
-         array($masterSalt), __FILE__, __LINE__);
-
-        // Also remember it in config
-        $_CONFIG['master_salt'] = $masterSalt;
-        unset($masterSalt);
+if (empty($_CONFIG['master_salt'])) {
+       // Generate the master salt which is the first chars minus 40 chars of this random hash
+       // We do an extra scrambling here...
+       $masterSalt = scrambleString(substr(generateHash(GEN_PASS(rand(128, 256))), 0, -40));
+
+       // ... and store it there for future usage
+       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET master_salt='%s' WHERE config=0 LIMIT 1",
+        array($masterSalt), __FILE__, __LINE__);
+
+       // Also remember it in config
+       $_CONFIG['master_salt'] = $masterSalt;
+       unset($masterSalt);
 }
 
-if (empty($_CONFIG['file_hash']))
-{
-        // Create filename from hashed random string
-        $file_hash = generateHash(GEN_PASS(rand(128, 256)));
-        $file = PATH."inc/.secret/.".$file_hash;
-
-        // File hash was never created
-        $fp = @fopen($file, 'w') or mxchange_die("Cannot write secret key file!");
-        if ($fp != false)
-        {
-                // Could write to secret file! So let's generate the secret key...
-                // 1. Count of chars to be taken from back of the string
-                $nums = rand(40, 45);
-                // 2. Generate secret key from a randomized string
-                $secretKey = substr(generateHash(GEN_PASS(rand(128, 256))), -$nums);
-                // 3. Write the key to the file
-                fwrite($fp, $secretKey);
-                // 4. Close file
-                fclose($fp);
-
-                // Change access rights for more security
-                @chmod($file, 0644);
-
-                //* DEBUG: */ unlink($file);
-                //* DEBUG: */ $test = hexdec(get_session('u_hash')) / hexdec($secretKey);
-                //* DEBUG: */ $test = generateHash(str_replace('.', "", $test));
-                //* DEBUG: */ die("Secret-Key: ".$secretKey."<br>Cookie: ".get_session('u_hash')."<br>Test: ".$test);
-
-                // Write $file_hash to database
-                $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET file_hash='%s' WHERE config=0 LIMIT 1",
-                 array($file_hash), __FILE__, __LINE__);
-
-                // Also create .htaccess file
-                $fp = @fopen(PATH."inc/.secret/.htaccess", 'w') or mxchange_die("Cannot write to .htaccess file!");
-                if ($fp != false)
-                {
-                        // Add deny line to file
-                        fwrite($fp, "Deny from all");
-
-                        // Close the file
-                        fclose($fp);
-                }
-
-                // Also update configuration
-                $_CONFIG['secret_key'] = $secretKey; unset($secretKey);
-                $_CONFIG['file_hash']  = $file_hash; unset($file_hash);
-        }
+if (empty($_CONFIG['file_hash'])) {
+       // Create filename from hashed random string
+       $file_hash = generateHash(GEN_PASS(rand(128, 256)));
+       $file = PATH."inc/.secret/.".$file_hash;
+
+       // File hash was never created
+       $fp = @fopen($file, 'w') or mxchange_die("Cannot write secret key file!");
+       if ($fp != false) {
+               // Could write to secret file! So let's generate the secret key...
+               // 1. Count of chars to be taken from back of the string
+               $nums = rand(40, 45);
+               // 2. Generate secret key from a randomized string
+               $secretKey = substr(generateHash(GEN_PASS(rand(128, 256))), -$nums);
+               // 3. Write the key to the file
+               fwrite($fp, $secretKey);
+               // 4. Close file
+               fclose($fp);
+
+               // Change access rights for more security
+               @chmod($file, 0644);
+
+               //* DEBUG: */ unlink($file);
+               //* DEBUG: */ $test = hexdec(get_session('u_hash')) / hexdec($secretKey);
+               //* DEBUG: */ $test = generateHash(str_replace('.', "", $test));
+               //* DEBUG: */ die("Secret-Key: ".$secretKey."<br>Cookie: ".get_session('u_hash')."<br>Test: ".$test);
+
+               // Write $file_hash to database
+               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET file_hash='%s' WHERE config=0 LIMIT 1",
+                array($file_hash), __FILE__, __LINE__);
+
+               // Also create .htaccess file
+               $fp = @fopen(PATH."inc/.secret/.htaccess", 'w') or mxchange_die("Cannot write to .htaccess file!");
+               if ($fp != false) {
+                       // Add deny line to file
+                       fwrite($fp, "Deny from all");
+
+                       // Close the file
+                       fclose($fp);
+               }
+
+               // Also update configuration
+               $_CONFIG['secret_key'] = $secretKey; unset($secretKey);
+               $_CONFIG['file_hash']  = $file_hash; unset($file_hash);
+
+               // Don't miss the admin hash here...
+               $passHash = generatePassString(get_session('admin_md5'));
+               set_session('admin_md5', $passHash);
+       }
 }
 
 //
index 46154a4..1ea9936 100644 (file)
@@ -381,7 +381,7 @@ function ADD_MENU($MODE, $act, $wht) {
        }
 }
 // This patched function will reduce many SELECT queries for the specified or current admin login
-function IS_ADMIN($admin="")
+function IS_ADMIN ($admin="")
 {
        global $cacheArray, $_CONFIG;
        $ret = false; $passCookie = ""; $valPass = "";