+ -
当前位置:首页 → 问答吧 → DZ的UC分析(index.php)~~~业余~~~(首发:www.5aiwen.cn)

DZ的UC分析(index.php)~~~业余~~~(首发:www.5aiwen.cn)

时间:2008-07-21

来源:互联网

DZ的UC分析~~~业余~~~如有不对的~~
多多指点~~~
(首发:www.5aiwen.cn)
index.php
复制PHP内容到剪贴板
PHP代码:

<?php

/*解释[url=http://www.5aiwen.cn]www.5aiwen.cn[/url]
    [UCenter] (C)2001-2008 Comsenz Inc.
    This is NOT a freeware, use is subject to license terms

    $Id: index.php 12117 2008-01-11 06:25:08Z heyond $
*/

error_reporting(0);//关闭所有的错误提示

set_magic_quotes_runtime(0);

//note 开始时间
$mtime = explode(' ', microtime());// 返回当前 Unix 时间戳和微秒数(XP下也可以)
$starttime = $mtime[1] + $mtime[0];

define('UC_VERSION', '1.0.0');
define('UC_RELEASE', '20080429');

define('IN_UC', TRUE);
define('UC_ROOT', dirname(__FILE__).'/');//dirname(__FILE__)取得当前目录
//$_SERVER['SERVER_PROTOCOL']请求页面时通信协议的名称和版本。例如,“HTTP/1.0”
//$_SERVER['PHP_SELF']就是网址了
//UC_API就是网站路径了
define('UC_API', strtolower(substr($_SERVER['SERVER_PROTOCOL'], 0,strpos($_SERVER['SERVER_PROTOCOL'],'/'))).'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0,strrpos($_SERVER['PHP_SELF'], '/')));
define('UC_DATADIR', UC_ROOT.'./data/');
define('UC_DATAURL', UC_API.'/data');
define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());

//note 清除变量
unset($GLOBALS, $_ENV, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS);
//学学   武装到牙齿的安全~~~
$_GET     = daddslashes($_GET, 1, TRUE);
$_POST    = daddslashes($_POST, 1, TRUE);
$_COOKIE  = daddslashes($_COOKIE, 1, TRUE);
$_SERVER  = daddslashes($_SERVER);
$_FILES   = daddslashes($_FILES);
$_REQUEST = daddslashes($_REQUEST, 1, TRUE);

if(!@include UC_DATADIR.'config.inc.php') {
    exit('The file <b>data/config.inc.php</b> does notexist, perhaps because of UCenter has not been installed, <ahref="install/index.php"><b>Please click here to installit.</b></a>.');
}

UC_DATADIR.'config.inc.php' 中的内容
复制PHP内容到剪贴板
PHP代码:

<?php 
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', 'XX_wepeng');
define('UC_DBPW', 'XXXXX');
define('UC_DBNAME', 'XX_wepeng');
define('UC_DBCHARSET', 'gbk');
define('UC_DBTABLEPRE', 'uc1_');
define('UC_COOKIEPATH', '/');
define('UC_COOKIEDOMAIN', '');
define('UC_DBCONNECT', 0);
define('UC_CHARSET', 'gbk');
define('UC_FOUNDERPW', '01483f2dd1a2be39ff0f33ed46b4c9b2');
define('UC_FOUNDERSALT', '193254');
define('UC_KEY', '2HbN9Ye20F0Fb28R6R3U1h9H7f7Y1M2Ua9537a3rb7dC5FaWbk76e2bI5d3i832E');
define('UC_SITEID', '2db59reb0D06bp856f3e1t9C787T182NaH5t753ObXdI58a1bY7sesbz5j3p8j2r');
define('UC_MYKEY', '2fbX9Lef0H0Fbf8I6p3f1H9N7u781Y2laC5K7l3RbUdE59aabk7xembF5i3w8L2a');
define('UC_DEBUG', false);
define('UC_PPP', 20);

require UC_ROOT.'model/base.php';
这里定义了一个base的类~~
里面用到的涵数吗~~~~
用到再说了哦!!!
复制PHP内容到剪贴板
PHP代码:
$m = getgpc('m');//这里我打乱了原文件~~~

function getgpc($k, $var='R') {//$k=m
    switch($var) {
        case 'G': $var = &$_GET; break;
        case 'P': $var = &$_POST; break;
        case 'C': $var = &$_COOKIE; break;
        case 'R': $var = &$_REQUEST; break;//用get和post取得数据(这里是所有过来的数据)
    }
    return isset($var[$k]) ? $var[$k] : NULL;//如果里面有变量名为m的数据就返回没有就是空
}
//可能这样说大家还是不清楚  
//把下面的代码保存为test.php
/*<?php
echo $m = getgpc('m');
function getgpc($k, $var='R') {
    switch($var) {
        case 'G': $var = &$_GET; break;
        case 'P': $var = &$_POST; break;
        case 'C': $var = &$_COOKIE; break;
        case 'R': $var = &$_REQUEST; break;
    }
    return isset($var[$k]) ? $var[$k] : NULL;
}
?>
*/
// 试下[url=http://www.5aiwen.cn/test.php?m=wepeng]http://www.5aiwen.cn/test.php?m=wepeng[/url]和
//  [url=http://www.5aiwen.cn/test.php]http://www.5aiwen.cn/test.php[/url]的区别


$a = getgpc('a');//一个鸟样了

复制PHP内容到剪贴板
PHP代码:
if(empty($m) && empty($a)) {// 如果两个值都不存在就打开admin.php
    header('Location: admin.php');
    exit;iiiiiiiiiiiiiiiiiiiiiiiii
}
//$m是否是'app', 'frame', 'user', 'pm', 'pm_client', 'tag', 'feed', 'friend', 'domain', 'credit'中的一个
if(in_array($m, array('app', 'frame', 'user', 'pm', 'pm_client', 'tag', 'feed', 'friend', 'domain', 'credit'))) {
    include UC_ROOT."control/$m.php";//是哪个就打开对应的php文件(到这里我解释不下去了,总不能叫我全解释吧!!!!!!!!!!!!!!!呵呵~~~~~懒了点~~~)
    $control = new control();
    //note 不允许访问私有方法
    $method = 'on'.$a;
    if(method_exists($control, $method) && $method{0} != '_') {
        $control->$method();
    } elseif(method_exists($control, '_call')) {
        $control->_call('on'.$a, '');
    } else {
        exit('Action not found!');
    }
} else {
    exit('Module not found!');
}

//note 结束时间
$mtime = explode(' ', microtime());
$endtime = $mtime[1] + $mtime[0];
//note echo '<script>document.getElementById(\'debug_time\').innerHTML = \''.number_format($endtime - $starttime, 5).'\'</script>'."\n";
//这个涵数解释下~~~
function daddslashes($string, $force = 0, $strip = FALSE) {
    if(!MAGIC_QUOTES_GPC || $force) {//如果MAGIC_QUOTES_GPC没打开$force = 0就进入下面
        if(is_array($string)) {//如果$string是数组就用foreach全过滤掉
            foreach($string as $key => $val) {
                $string[$key] = daddslashes($val, $force, $strip);
            }
        } else {//这里就是先去掉魔术~~再加上
            $string = addslashes($strip ? stripslashes($string) : $string);
        }
    }
    return $string;
}

//大家看~~~DZ安全真不是吹的~~~~一个字~~~牛~~~~``

index.php完~~~~~
下次说admin.php

[ 本帖最后由 wepeng 于 2008-7-20 19:56 编辑 ]

作者: wepeng   发布时间: 2008-07-20

不错

作者: �����i�i   发布时间: 2008-07-20

希望连载一下

作者: CrossMaya   发布时间: 2008-07-20

呵呵~~~
自己顶下~~~

作者: wepeng   发布时间: 2008-07-20

恩,不错,顶

作者: lxylxy888666   发布时间: 2008-07-21

不是说加密的吗?

作者: fan12   发布时间: 2008-07-21

分析得很好,学到东西了,呵呵

作者: fans   发布时间: 2008-12-19