آژانس هواپیماییfootbal
nexpay

حفاظت فارسي نوك(يا PHP-Nuke) بصورت كامل

شروع موضوع توسط iranvig ‏15 فوریه 2004 در انجمن phpNuke - پی‌اچ‌پی نیوک

  1. iranvig

    iranvig کاربر تازه وارد

    تاریخ عضویت:
    ‏22 می 2003
    نوشته ها:
    407
    تشکر شده:
    4
    راستش من بعد از اينكه ديدم فارسي نوك توسط يه سري افراد هك ميشه و به راحتي ميشه اطلاعات اونو كاملا از ميون برد بفكر افتادم با يه روشي جلوي اين كار رو بگيرم . البته چون ممكنه در آينده هم از اينجور اشكالات پيش بياد بايد يه فكر اساسي ميكردم واسه همين يه برنامه ساختم كه اگه به سايت هايي كه نوكي هستن اضافه بشه ديگه بصورت كامل مشكل حل ميشه .
    اين برنامه يه لاگ فايل تكست هستش اصلا بزار خود برنامه رو اينجا بزارم
    اول از همه ميري توي فولدر db سايتت و به آخر فايل mysql.php درست قبل از علامت <? اين خط ها رو اضافه ميكني
    PHP:
    function writelog($query) {
        
    $filename "iranvig.txt";
        if (
    is_writable($filename)) {
           if (!
    $handle fopen($filename'a')) {
                 exit;
           }
           
    $somecontent="$query \r\n";
           if (!
    fwrite($handle$somecontent)) {
               exit;
           }
           
           
    fclose($handle);
                           
        }
    }
    function 
    checkaction($query) {
        if (
    ereg("INSERT",strtoupper($query)) or ereg("DELETE",strtoupper($query)) or ereg("UPDATE",strtoupper($query)))
        {return 
    true;}
        else {return 
    false;}
    }

    توجه كن من اين فايل رو اسمش رو گذاشتم iranvig.txt تو هرچي دوست داري بزار و نگران نباش بخصوص يه اسمي بزار كه قابل حدس زدن نباشه حتي ميتوني مسير هم بهش بدي . حالا ميري به قسمت تابع sql_query (حدودا توي خط 100 قرار داره) و اونو اينطوري تغيير ميدي
    PHP:
        function sql_query($query ""$transaction FALSE)
        {
            
    // Remove any pre-existing queries
            
    unset($this->query_result);
            if(
    $query != "")
                    {
                if (
    checkaction($query)) {writelog($query);}
                
    $this->query_result = @mysql_query($query$this->db_connect_id);

            }
            if(
    $this->query_result)
            {
                unset(
    $this->row[$this->query_result]);
                unset(
    $this->rowset[$this->query_result]);
                return 
    $this->query_result;
            }
            else
            {
                return ( 
    $transaction == END_TRANSACTION ) ? true false;
            }
        }

    حالا ديگه لاگ فايلت آماده هست فقط بخاطر اينكه مشكلي پيش نياد قبل از اينكه فايل mysql.php رو بزاري تو سايتت برو و يه فايل (حداقل با سايز صفر و با نام فايل بالا يعني مثلا iranvig.txt ايجاد كن با پرميژن كامل رايت كردني يعني 777) بعدش فايل mysql.php رو توي سايت خودت تو محل مربوطه آپلود كن.
    براي نمونه ميتوني فايل اصلي رو از توي لينك زير پيدا كني (به سايتم سر بزنيد.)
    حالا به چه دردي ميخوره فرض كن همه فايلهات توسط هكر هك شده و از ميون رفته كافيه بري تو قسمت phpmyadmin و همه رو پاك پاك كني(البته بك آپ قبل از اين تغييرات رو بگير و اونو نگر دار) اول بك آپ رو برگردون و سپس فايل مربوطه كه تكست هست رو ورش دار و توي قسمت import بزن همه اطلاعات بلافاصله برميگرده به همين سادگي .
    سوال داري بپرس.
    اينم لينك برنامه :
    http://www.iranvig.com/modules.php?name=News&file=article&sid=246
     

این صفحه را با دیگران به اشتراک بگذارید

خرید بک لینکreviews عسل طبیعی و گرده گل ایرانی