Показать сообщение отдельно
Старый 09.10.2006, 22:31   #99
псих
Местный
 
Аватар для псих
 
Регистрация: 28.04.2006
Сообщений: 503
Вы сказали Спасибо: 127
Поблагодарили 15 раз(а) в 8 сообщениях
Смех

Цитата:
Сообщение от Port3128.
if (!defined("DIMA")) exit("?");


////////////////////////////////////////
///////// DESIGN & TEMPLATES ///////////
////////////////////////////////////////


function frame1($jsfocus=0) {
global $skin;
$sid=session_id();
$mtime=filemtime(skn("css_all.css"));
if (isset($GLOBALS['ignorefocus']) && $GLOBALS['ignorefocus']==1) $jsfocus=0;
if ($jsfocus)
echo "<body onLoad=\"window.focus(); if (opener) opener.frazafocus=0\" ".
"onUnLoad=\"if (opener && opener.frames && opener.frames.kbd && isonunload) opener.set_focus()\">";
echo
"<script>var isonunload=1</script>";
return xparse(skn("z-frame-part1.html"),"",get_defined_vars());
}

function frame2($tr="",$html="") {
global $skin;
if ($html=="") return xparse(skn("z-frame-part2a.html"),'',get_defined_vars());
return xparse(skn("z-frame-part2b.html"),"",get_defined_vars());
}

function frame3() {
global $skin;
return xparse(skn("z-frame-part3.html"),"",get_defined_vars());
}


// в качестве третьего параметра рекомендуется передавать <get_defined_vars()>
function xparse($fn,$text="",$LOCALS=array()) {
if (empty($text)) $text=myfile($fn);
$text=preg_replace("!^ *(#|//).*[\r\n]*!m","",$text);
$text=preg_replace("!^ +!m"," ",$text);
if (strpos($text,"\\=")!==false)
$text=preg_replace("![\\\\]=([a-f0-9]{2})!e","chr(hexdec('\\1'))",$text);
return preg_replace("!\{\\\$([a-z_][a-z0-9_]*)(\[([a-z0-9_-]+)\])?(\[([a-z0-9_-]+)\])?\}!ie","xparse_('\\1','\\3','\\5',\$LOCALS,\$fn) ",$text);
}

function xparselog($n1,$n2,$n3,$fn) {
if ($n3) $log="\${$n1}[$n2][$n3]";
elseif ($n2) $log="\${$n1}[$n2]";
else $log="\$$n1";
putlog("xparse error: can't found [$log] for [$fn]");
}

function xparse_($n1,$n2,$n3,$LOCALS,$fn) {
if ($n2=="") {
if (isset($LOCALS[$n1])) return $LOCALS[$n1];
if (isset($GLOBALS[$n1])) return $GLOBALS[$n1];
xparselog($n1,$n2,$n3,$fn);
return "{XPARSE_ERROR_ON_\${$n1}_$fn}";
}
if ($n3=="") {
if (isset($LOCALS[$n1][$n2])) return $LOCALS[$n1][$n2];
if (isset($GLOBALS[$n1][$n2])) return $GLOBALS[$n1][$n2];
xparselog($n1,$n2,$n3,$fn);
return "{XPARSE_ERROR_ON_\${$n1}[$n2]_$fn}";
}
if (isset($LOCALS[$n1][$n2][$n3])) return $LOCALS[$n1][$n2][$n3];
if (isset($GLOBALS[$n1][$n2][$n3])) return $GLOBALS[$n1][$n2][$n3];
xparselog($n1,$n2,$n3,$fn);
return "{XPARSE_ERROR_ON_\${$n1}[$n2][$n3]_$fn}";
}

function cssparse($fn) {
$text=myfile($fn);
$text=preg_replace("!^#.*[\r\n]*!m","",$text);
$text=preg_replace("! +!"," ",$text);
$text=preg_replace("![\r\n]!","",$text);
$text=str_replace("\r","",$text);
$text=str_replace("\n","",$text);
$text=str_replace(": ",":",$text);
$text=str_replace(" :",":",$text);
$text=str_replace(" {","{",$text);
$text=str_replace("{ ","}",$text);
$text=str_replace(" ;",";",$text);
$text=str_replace("; ",";",$text);
return xparse("",$text);
}

function jsparse($fn) {
$text=xparse($fn);
// $text=str_replace("\r","",$text);
$text=preg_replace("!^ +!m","",$text);
$text=preg_replace("!^ *//.*!m","",$text);
$text=preg_replace("!^ *#[^#]*!m","",$text);
return $text;
}



///////////////////////////
///////// FUNCT ///////////
///////////////////////////

function user_agent() {
return substr(html(strip_tags(getenv("HTTP_USER_AGENT"))) ,0,200);
}

function mainsecure() {
global $s, $secure, $myprotect1, $PHP_SELF, $sess, $asess, $sessf, $asessf,
$br_blocked_what, $br_blocked_pass, $authpass, $authuser,
$HTTP_COOKIE_VARS, $HTTP_POST_VARS, $HTTP_GET_VARS;

if (debug3) putlog("debug3 trace ".__FILE__." ".__LINE__);
$scr=$secure[$s['se']];
$secureok=1;
$securemsg="";
$mustcheck=($s[1] || $s[2] || $s[3])?1:0;
$this_br=user_agent();
$this_ip=remoteaddr();
// $this_ip="1.0.0.4";

// проверка неизменяемости имени браузера
if ($scr['br'] && $this_br!=$s['br']) {
$secureok=0;
$s['dead']=1;
$blocked_msg="Изменилось название вашего браузера. В нормальных ситуациях такое
возможно только при установке новых версий браузера (если вы к тому же еще
и в чате сидите) или переустановке Windows. Ваша текущая сессия уничтожается
в целях безопасности и сейчас вы автоматически отключены от чата.";
putlog("secure#1: изменился браузер [$s[br]]=>[$this_br] ($s[nick] $s[3] $s[0] $s[host])");
}

// проверка изменения IP
if ($mustcheck && ($scr['ip'] || $scr['ipnet']) && $s['addr']!==$this_ip) {
putlog("secure#3: изменился IP [$s[addr]]=>[$this_ip] ($s[nick] $s[3] $s[0] $s[host])");
include("src/secure_ip.php");
}

// проверка куки защиты PR1
if ($scr['protect'] && $s['br_cookie'] && isset($HTTP_COOKIE_VARS[$myprotect1]) &&
$HTTP_COOKIE_VARS[$myprotect1]!==$s['pr1'])
{
putlog("secure#2: изменилась cookie алгоритма защиты PR1 [$s[pr1]]=>[$HTTP_COOKIE_VARS[$myprotect1]] ($s[nick] $s[3] $s[0] $s[host])");
$secureok=0;
$blocked_msg="Передан фальшивый код PR1 алгорита защиты чата, ".
"который хранится в cookie-памяти вашего браузера.";
}

// Провека потери HTTP пароля
if ($secureok && $scr['httppass'] && $s['pr3cnt']==5 && $GLOBALS['authpass']!==$s['pr3']) {
if (debug3) putlog("debug3 trace ".__FILE__." ".__LINE__);
// Если браузер неожиданно потерял ключ и режим безопасности разрешает его переустановить,
// при условии правильности cookie PR1 и всех параметров браузера:
if (empty($authpass) && $scr['httplost'] &&
@strval($HTTP_COOKIE_VARS[$myprotect1])===$s['pr1'])
{
if (debug3) putlog("debug3 trace ".__FILE__." ".__LINE__);
include("src/secure_httppass.php");
// это место создаст 2 перезагрузки текущей страницы браузера
}
// Если после проверки ключ остается пустым
if (empty($GLOBALS['authpass'])) {
if (debug3) putlog("debug3 trace ".__FILE__." ".__LINE__);
$secureok=0;
if ($scr['httplost']) {
putlog("secure#31: потерян httppass [$s[pr3]]=>[$GLOBALS[authpass]], алгоритм httplost запускался, но не помог ($s[nick] $s[3] $s[0] $s[host])");
$blocked_msg="К сожалению, ваш браузер потерял ключ HTTP-авторизации (HTTPkey). Даже при попытке чата перезадать его, браузер все равно не передает его. Продолжить работу с чатом невозможно. Если данное сообщение (о потере HTTPkey) вы наблюдаете довольно часто, воспользуйтесь при входе в чат режимом безопасности 'низкий'.";
}
else {
putlog("secure#32: потерян httppass [$s[pr3]]=>[$GLOBALS[authpass]] ($s[nick] $s[3] $s[0] $s[host])");
$blocked_msg="К сожалению, ваш браузер потерял ключ HTTP-авторизации (HTTPkey). Пересоздать ключ не удалось из-за отключенных cookies. Продолжить работу с чатом невозможно. Если данное сообщение (о потере HTTPkey) вы наблюдаете довольно часто, воспользуйтесь при входе в чат режимом безопасности 'низкий'.";
}
}
// Проверка временного пароля HTTP-авторизации
if ($secureok && $GLOBALS['authpass']!==$s['pr3']) {
if (debug3) putlog("debug3 trace ".__FILE__." ".__LINE__);
putlog("secure#33: изменился httppass [$s[pr3]]=>[$GLOBALS[authpass]] ($s[nick] $s[3] $s[0] $s[host])");
$secureok=0;
$blocked_msg="Передан фальшивый временный ключ HTTP-авторизации (HTTPkey).";
}
}

if (isset($s['blocked'])) {
include_once("src/secure_hackdetect.php");
}
are you sure???
псих вне форума