ایران سرور
رفع يك باگ خطرناك در فايل Admin.php

فايل Admin.php رو باز كنيد و به دنبال كد زير بگرديد:
require_once (ENGINE_DIR.'/inc/init.php');

پس از اين كد، كدهاي زير رو قرار دهيد:
if($is_loged_in AND $_SERVER['HTTP_REFERER'] == '' AND !$_SESSION['dle_name'] ) {

     $is_loged_in = FALSE;

} elseif ($is_loged_in AND $_SERVER['HTTP_REFERER'] != '' AND strpos( strtolower($_SERVER['HTTP_REFERER']), $config['admin_path'] ) === false) {

    $allow_mod = array("editusers", "editnews", "iptools", "blockip");
    $allow_action = array("edituser", "editnews");

    if ($config['extra_login']) $allow_mod[] = "";

    if (in_array($_GET['mod'], $allow_mod)) {

        if (($_GET['action'] AND !in_array($_GET['action'], $allow_action)) OR $_GET['ifdelete']) $is_loged_in = FALSE;

    } else $is_loged_in = FALSE;

} elseif ($is_loged_in AND strpos( strtolower($_SERVER['HTTP_REFERER']), "mod=editnews" ) !== false) {

    if (@strpos( $_SERVER['HTTP_REFERER'], $_GET['id'] ) === false AND count($_GET) > 2 AND $_GET['mod'] != "editnews") $is_loged_in = FALSE;

}

if (!$is_loged_in) {

        @session_destroy();
        @session_unset();

}


اين باگ رو در سايت اصلي ديتالايف ديدم كه نوشته بود خطرناكه..!
نفهميدم كه اين باگ چي كار ميكنه..! (بخوام چيزي كه نوشته بود رو به فارسي معني كنم، يه چيزي تو اين مايه ها ميشه: [ نارسايي فيلتر كردن وارد شونده ي داده ها what ]


www.free-cms.ir، mohsen1385 و hm1368 و پنج نفر دیگر تشکر کرده‌‌اند.

اطلاعات

برای ارسال نظر، باید در سایت عضو شوید.