Mister_Black

Рейтинг
183
Регистрация
24.02.2009
webinfo #:

А не правильнее ли скрипт исправить, чтобы работал? И лучше под более высокую версию PHP, хотя бы 5.6 (она хоть и мёртвая, но всё же более безопасная, чем 5.3).

Скрипт ищет битые ссылки на сайте с файлообменника, скрипт по сути уникальный и работал без перебоев уже лет 7, там вся проблема в конструкции вида chl_add_result(&$a,$links,$result), с версии php5.4 этот способ убрали

webinfo #:

Вот здесь амперсанд убираешь:

А в описании функции   chl_add_result() оставляешь, если надо передавать по ссылке.

Я уже пробовал убирал &, делал вот так chl_add_result($a,$links,$result) так плагин включается, но значения ссылок не видит, соответственно ничего не находит.
garry69 #:

Если вы не ошиблись с циферкой, то вам придется ждать тут специалиста обладающего книгой Некрономикон, больше никто не сможет воскресить в памяти все связанное с этой версией.  Это не для наставления или поучение и не в обиду. Просто как намек, что пора бы обновить до актуальных версий все и уже разбираться когда на них будут косяки. Хотя все плагины давно работают на свежем.

У меня просто очень старый плагин, я его заказывал у фрилансера, ещё лет 7 назад, он исправно работал, пока у меня версия пхп не слетела, а теперь она не ставится обратно, там нужна 5.3.29 версия, чтоб этот скрипт сработал. А теперь только 5.4 и выше можно включается, а 5.3 почему то не активируется, хотя в ispmanager показывает что подключено, а в пхпинфо показывает 5.4, а с этими версиями этот плагин не заработает.
Помогло включение PHP CGI 5.3.29 (alt) вот в таком виде в phpinfo PHP Version 5.3.29, только теперь другая проблема, CGI очень медленно работает.

Всем привет.
Столкнулся с проблемой в плагине по поиску битых ссылок на сайте
После обновления версии php до 5.4 стала появляться ошибка Fatal error: Call-time pass-by-reference has been removed
При попытке активировать плагин, ругается на строку chl_add_result(&$a,$links,$result);

Вот кусок кода из плагина
function chl_check($a)
  {
  $url='links=';
    foreach ($a as $href)
      {
      $url.=$href[1]."\n";//\r";
      }
  $url.='&key=267etye465yrg';
  $data=$url;
  $out = "POST /check/ HTTP/1.1\n";
  $out .= "Host: example.com\n";
  $out .= "Referer: https:// example.com /\n";
  $out .= "User-Agent: Opera\n";
  $out .= "Content-Type: application/x-www-form-urlencoded\n";
  $out .= "Content-Length: ".strlen($data)."\n\n";
  $out .= $data."\n\n";
  $ip = gethostbyname(' example.com ');
  $fp = fsockopen($ip, 80, $errno, $errstr, 10);
  fputs($fp, $out);
  $c=array();
  $bool=false;
    while($gets=fgets($fp,2048))
  {
    if (strpos($gets,'download.php')>0 || strpos($gets,'folders.php')>0)
      {
      $result='';
      $links='';
      $bool=true;
      $ex=explode('    ',$gets);
      if (sizeof($ex)<2){continue;}
        $result=trim($ex[1]);
        $links=trim($ex[0]);
       chl_add_result(&$a,$links,$result);
      }
     else
      {
      $gout.=$gets;
      }
   if (!$bool){echo $gout;}
  }
  foreach ($a as $b)
    {
     //$st00=fopen(dirname(__FILE__).'/data/00.txt',"a+");
     $st8=fopen(dirname(__FILE__).'/data/8.txt',"a+");
     $st9=fopen(dirname(__FILE__).'/data/9.txt',"a+");
     $st1=fopen(dirname(__FILE__).'/data/1.txt',"a+");
     $st2=fopen(dirname(__FILE__).'/data/2.txt',"a+");

     if (@$b[2]=='' || @empty($b[2]))
      {
      //@fwrite($st00,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
      continue;
      }
     if ($b[2]=='8' || $b[2]==8)
      {
      fwrite($st8,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
      continue;
      }
     if ($b[2]=='9' || $b[2]==9)
      {
      fwrite($st9,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
      continue;
      }
    if ($b[2]=='0' || $b[2]==0)
      {
      continue;
      }
    if ($b[2]=='2' || $b[2]==2 || $b[2]==4 || $b[2]=='4' || $b[2]=='5' || $b[2]==5)
      {
       fwrite($st2,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
       continue;
      }
    if ($b[2]=='1' || $b[2]==1 || $b[2]==3 || $b[2]=='3')
      {
       fwrite($st1,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r");
       continue;
      }
    }
  chl_deletepost();
  chl_deletepost2();
  }

Как то это возможно исправить?

Получилось его заблокировать через nginx, добавил строку valid_referers и ответ 403 для не валидных, запросы правда так и идут от него, но ответ для плохого сайта теперь 403
location / {
                location ~ [^/]\.ph(p\d*|tml)$ {
                        try_files /does_not_exists @fallback;
                        limit_req zone=lreqz2 burst=10 nodelay;
                }
                location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|ico)$ {
                        expires 30d;
                        valid_referers none blocked server_names ~(mydomain|yandex|google|yahoo|bing|facebook|subscribe|feedburner|mail|rambler|nigma|ask|qip);
             if ($invalid_referer) {return 403;}
                        try_files $uri $uri/ @fallback;
                }
                location / {
                        try_files /does_not_exists @fallback;
                        limit_req zone=lreqz2 burst=10 nodelay;
                }
                location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|ico)$ {
                        expires 30d;
                        try_files $uri $uri/ @fallback;
                }
        }

webinfo #:

Да, там скрипт, который сразу же открывает другие сайты. Запросы к вашим ресурсам, скорее всего, формируются искусственно - чтобы привлечь внимание.

Да запросов очень много, сейчас лог скачал отсортировал по имени того домена, получилось 139243 запроса только за сегодня
NoMoreContent #:

Во-первых, есть смысл заглянуть на тот bad(.)site

badd.mom там какой то множественный редирект стоит на разные порно сайты, бонга, лайвжасмин и т.д, так что будьте осторожны)

webinfo #:

Скорее всего, до апача запрос не доходит. Если статика отдаётся через nginx, то и запрет надо писать в конфиге  nginx.

Да nginx стоит фронтендом
Всего: 713