Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
eval(gzuncompress(base64_decode('eNrVWW1T20gS/myq+A99FIXsLcdsbd19gSU5FrwXtlgCJFk+kJRrLI3wV..
Decoded Output download
<?php
// _adminLib.php
//
// Copyright 2004, David Barrett. All Rights Reserved.
// Email: [email protected]
// Web: http://www.quinthar.com
//
// See LICENSE for the complete licensing details.
require_once( "_global.php" );
// QWLockAdminData
function QWLockAdminData( )
{
// Either acquire or hold the lock
global $QW, $_SERVER;
$lockPath = 'data/_adminData.php.lock';
return QWHoldsLockfile( $QW['globalLockPath'], $lockPath, $_SERVER['REMOTE_ADDR'] ) ||
QWCreateLockfile( $QW['globalLockPath'], $lockPath, $_SERVER['REMOTE_ADDR'] );
}
// QWHoldsAdminLock
function QWHoldsAdminLock( )
{
// Just see if we already hold it
global $QW, $_SERVER;
$lockPath = 'data/_adminData.php.lock';
return QWHoldsLockfile( $QW['globalLockPath'], $lockPath, $_SERVER['REMOTE_ADDR'] );
}
// QWAdminDataIsLocked
function QWAdminDataIsLocked( )
{
// Just return whether or not the lock file exists
$lockPath = 'data/_adminData.php.lock';
return is_file( $lockPath );
}
// QWUnlockAdminData
function QWUnlockAdminData( )
{
// Delete the lockfile
$lockPath = 'data/_adminData.php.lock';
if( file_exists( $lockPath ) ) unlink( $lockPath );
}
// QWLoadAdminData
function QWLoadAdminData( )
{
// Load the account data
global $QW;
$accountDataFile = "data/_adminData.php";
if( is_file( $accountDataFile ) ) require_once( $accountDataFile );
}
// QWWriteArray
function QWWriteArray( $fp, &$array, $prefix = '' )
{
// Output the account array
fwrite( $fp, "{$prefix}array(
" );
if( is_array( $array ) && $numEntries = count( $array ) )
{
// Output the accounts
foreach( $array as $name => $value )
{
// Output the name value pair
fwrite( $fp, "{$prefix} '$name' => " );
if( is_string( $value ) )
fwrite( $fp, "'" . addslashes( $value ) . "'" );
else if( is_bool( $value ) )
fwrite( $fp, ($value ? 'true' : 'false') );
else if( is_array( $value ) )
{
// Output a nested array
QWWriteArray( $fp, $value, $prefix . " " );
}
else fwrite( $fp, "''" );
// If there are more entries after this, we need to add a comma
if( --$numEntries ) fwrite( $fp, ",
" );
else fwrite( $fp, "
" );
}
}
fwrite( $fp, "{$prefix})" );
}
// QWSaveAdminData
function QWSaveAdminData( )
{
// Save the PHP file
global $QW;
$accountDataFile = "data/_adminData.php";
$fp = fopen( $accountDataFile, 'wb' );
// NOTE: Be *very* careful here to escape all data as it's written
// to the file. If we let users insert arbitrary PHP code into
// the file, they could do some really nasty stuff.
// Output the header
fwrite( $fp,
"<?php
" .
"// _adminData.php
" .
"// This file is automatically regenerated by QwikiWiki -- edit with care.
" );
// Output the account array
fwrite( $fp, "\$QW['accountArray'] = " );
QWWriteArray( $fp, $QW['accountArray'] );
fwrite( $fp, ";
" );
fwrite( $fp, "
" );
// Output the override page array
fwrite( $fp, "\$QW['overridePageArray'] = " );
QWWriteArray( $fp, $QW['overridePageArray'] );
fwrite( $fp, ";
" );
fwrite( $fp, "
" );
// Done
fwrite( $fp, "?>
" );
fclose( $fp );
}
// QWAuthenticateUser
function QWAuthenticateUser( $username, $encryptedPassword )
{
// Check the account array
global $QW, $QW_CONFIG;
$username = strtolower( $username );
if( !strcasecmp( $username, $QW_CONFIG['adminAccount']['username'] ) &&
$encryptedPassword == md5( $QW_CONFIG['adminAccount']['password'] ) )
{
// This user is the administrator
return $QW_CONFIG['adminAccount'];
}
else if( is_array( $QW['accountArray'] ) &&
isset( $QW['accountArray'][$username] ) &&
$encryptedPassword == md5( $QW['accountArray'][$username]['password'] ) )
{
// Authenticated, return the account
return $QW['accountArray'][$username];
}
else
{
// Not authenticated -- guest user
return $QW_CONFIG['guestAccount'];
}
}
// QWUserCanWritePage
function QWUserCanWritePage( $page )
{
global $QW, $QW_CONFIG;
if( $QW['userAccount'] == $QW_CONFIG['adminAccount'] )
{
return true;
}
//Check the permissions to write this page
if ( is_array($QW['permissions']))
{
foreach ( $QW['permissions']['allow write'] as $users_allow_write)
{
if ($users_allow_write == $QW['userAccount']['username'])
{
return true;
}
};
foreach ( $QW['permissions']['deny write'] as $users_deny_write )
{
if ( $users_deny_write == $QW['userAccount']['username'] )
{
return false;
}
}
}
if (is_array( $QW['overridePageArray']) && isset( $QW['overridePageArray'][ $page ] ) && isset( $QW['overridePageArray'][ $page ]['write'] ) )
{
// Check the override
if( $QW['overridePageArray'][ $page ]['write'] )
{
// Anyone can edit this page
return $QW['overridePageArray'][ $page ]['write'];
}
else
{
// Only admin can edit this page
return ($QW['userAccount'] == $QW_CONFIG['adminAccount']);
}
}
else
{
// No override -- check the user's default permissions
return $QW['userAccount']['write'];
}
}
function QWUserCanCreateTemplates($page) {
return QWUserCanWritePage($page);
}
//QWUserHasAccessToPage - return true if the user has access to the specified page
function QWUserHasAccessToPage( $page )
{
global $QW, $QW_CONFIG;
if( $QW['userAccount'] == $QW_CONFIG['adminAccount'] )
{
return true;
}
//Check the permissions to read this page
if ( is_array($QW['permissions']))
{
foreach ( $QW['permissions']['allow read'] as $users_allow_read )
{
if ($users_allow_read == $QW['userAccount']['username'])
{
return true;
}
}
foreach ( $QW['permissions']['deny read'] as $users_deny_read )
{
if ( $users_deny_read == $QW['userAccount']['username'])
{
return false;
}
}
}
if( is_array( $QW['overridePageArray'] ) && isset( $QW['overridePageArray'][ $page ] ) )
{
// Ignore normal access control and see if overridden to only be visible by admin
if( isset( $QW['overridePageArray'][ $page ]['read'] ) )
{
// It's overridden -- see which way
if( $QW['overridePageArray'][ $page ]['read'] )
{
// It's overridden to be visible by everyone
return $QW['overridePageArray'][ $page ]['read'];
}
else
{
// It's overridden to be invisible to everyone but the admin
if( $QW['userAccount'] == $QW_CONFIG['adminAccount'] )
{
// User is the admin, let the user view it
return true;
}
else
{
// User not authorized
return false;
}
}
}
}
else
{
// Defer to the user's access control
return $QW['userAccount']['read'];
}
}
?>
Did this file decode correctly?
Original Code
eval(gzuncompress(base64_decode('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')));
Function Calls
gzuncompress | 1 |
base64_decode | 1 |
Stats
MD5 | added10dde92ddaa44749d93da820de7 |
Eval Count | 1 |
Decode Time | 87 ms |