cyca 0 Опубликовано: 5 июня 2018 Рассказать Опубликовано: 5 июня 2018 Здравствуйте, адрес сайта dota2plusz.ru (лицензия) Версия 11.2 Перестала работать стандартная капча DLE, а именно по клику фон капчи обновляется, а текст не выводится. Перегуглил, все что можно. Права antibot и файлов 755, с кодировкой файлов также все в порядке. GD Version: bundled (2.1.0 compatible) Адрес https://dota2plusz.ru/index.php?do=lostpassword Где копать корень зла? Была смена хостинга, но не вижу аутов как это могло повлиять, все библиотеки установлены. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 5 июня 2018 Рассказать Опубликовано: 5 июня 2018 1 час назад, cyca сказал: Где копать корень зла? Была смена хостинга, но не вижу аутов как это могло повлиять, все библиотеки установлены. 1. Проблемы с библиотекой GD2 для PHP на сервере. 2. повреждены файлы шрифтов в папке engine/modules/antibot/fonts/ Цитата Ссылка на сообщение Поделиться на других сайтах
cyca 0 Опубликовано: 5 июня 2018 Рассказать Опубликовано: 5 июня 2018 Автор Хостер увереяет в работоспособности библиотеки. Изменений в файлах шрифтов не было, они доступны. Лог ошибок [Tue Jun 05 17:22:47.913400 2018] [:error] [pid 21012] [client 172.68.10.234:57192] PHP Notice: Undefined offset: 4 in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:47.913500 2018] [:error] [pid 21012] [client 172.68.10.234:57192] PHP Notice: Undefined index: g in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:47.913523 2018] [:error] [pid 21012] [client 172.68.10.234:57192] PHP Notice: Undefined offset: 9 in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:47.913539 2018] [:error] [pid 21012] [client 172.68.10.234:57192] PHP Notice: Undefined index: x in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:47.913555 2018] [:error] [pid 21012] [client 172.68.10.234:57192] PHP Notice: Undefined offset: 4 in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:48.279699 2018] [:error] [pid 21015] [client 172.68.10.234:57200] PHP Notice: Undefined offset: 8 in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:48.279835 2018] [:error] [pid 21015] [client 172.68.10.234:57200] PHP Notice: Undefined index: s in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:48.279875 2018] [:error] [pid 21015] [client 172.68.10.234:57200] PHP Notice: Undefined offset: 2 in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:48.279908 2018] [:error] [pid 21015] [client 172.68.10.234:57200] PHP Notice: Undefined offset: 2 in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:48.279937 2018] [:error] [pid 21015] [client 172.68.10.234:57200] PHP Notice: Undefined index: z in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword [Tue Jun 05 17:22:48.279980 2018] [:error] [pid 21015] [client 172.68.10.234:57200] PHP Notice: Undefined index: x in /var/www/www-root/data/www/dota2plusz.ru/engine/modules/antibot/antibot.php on line 156, referer: https://dota2plusz.ru/index.php?do=lostpassword Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 5 июня 2018 Рассказать Опубликовано: 5 июня 2018 47 минут назад, cyca сказал: Лог ошибок Судя по номеру строк, файл engine/modules/antibot/antibot.php отличается от оригинального. И судя по самому сообщению, файлы шрифтов либо повреждены, либо некорректна библиотека GD2 и шрифты не были загружены в память. Цитата Ссылка на сообщение Поделиться на других сайтах
cyca 0 Опубликовано: 5 июня 2018 Рассказать Опубликовано: 5 июня 2018 Автор Возможно были фиксы в этом файле со временем, моя версия DLE 11.2 <?php # KCAPTCHA PROJECT VERSION 2.0 # Automatic test to tell computers and humans apart # Copyright by Kruglov Sergei, 2006, 2007, 2008, 2011 # www.captcha.ru, www.kruglov.ru # System requirements: PHP 4.0.6+ w/ GD # KCAPTCHA is a free software. You can freely use it for developing own site or software. # If you use this software as a part of own sofware, you must leave copyright notices intact or add KCAPTCHA copyright notices to own. # As a default configuration, KCAPTCHA has a small credits text at bottom of CAPTCHA image. # You can remove it, but I would be pleased if you left it. ;) /* ===================================================== DataLife Engine - by SoftNews Media Group ----------------------------------------------------- http://dle-news.ru/ ----------------------------------------------------- Copyright (c) 2004-2017 SoftNews Media Group ===================================================== Данный код защищен авторскими правами ===================================================== Файл: antibot.php ----------------------------------------------------- Назначение: антибот ===================================================== */ function clean_url ($url) { if ($url == '') return; $url = str_replace("http://", "", strtolower($url)); $url = str_replace("https://", "", $url ); if (substr($url, 0, 4) == 'www.') $url = substr($url, 4); $url = explode('/', $url); $url = reset($url); $url = explode(':', $url); $url = reset($url); return $url; } if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) die("Hacking attempt!"); class KCAPTCHA{ // generates keystring and image function __construct(){ $alphabet = "0123456789abcdefghijklmnopqrstuvwxyz"; # do not change without changing font files! # symbols used to draw CAPTCHA //$allowed_symbols = "0123456789"; #digits $allowed_symbols = "23456789abcdegikpqsvxyz"; #alphabet without similar symbols (o=0, 1=l, i=j, t=f) # folder with fonts $fontsdir = 'fonts'; # CAPTCHA string length $length = mt_rand(5,7); # random 5 or 6 or 7 //$length = 6; # CAPTCHA image size (you do not need to change it, this parameters is optimal) $width = 160; $height = 80; # symbol's vertical fluctuation amplitude $fluctuation_amplitude = 8; #noise //$white_noise_density=0; // no white noise $white_noise_density=1/6; //$black_noise_density=0; // no black noise $black_noise_density=1/30; # increase safety by prevention of spaces between symbols $no_spaces = true; # CAPTCHA image colors (RGB, 0-255) //$foreground_color = array(0, 0, 0); //$background_color = array(220, 230, 255); $foreground_color = array(mt_rand(0,80), mt_rand(0,80), mt_rand(0,80)); $background_color = array(mt_rand(220,255), mt_rand(220,255), mt_rand(220,255)); # JPEG quality of CAPTCHA image (bigger is better quality, but larger file size) $jpeg_quality = 70; $fonts=array(); $fontsdir_absolute=dirname(__FILE__).'/'.$fontsdir; if ($handle = opendir($fontsdir_absolute)) { while (false !== ($file = readdir($handle))) { if (preg_match('/\.png$/i', $file)) { $fonts[]=$fontsdir_absolute.'/'.$file; } } closedir($handle); } $alphabet_length=strlen($alphabet); do{ // generating random keystring while(true){ $this->keystring=''; for($i=0;$i<$length;$i++){ $this->keystring.=$allowed_symbols{mt_rand(0,strlen($allowed_symbols)-1)}; } if(!preg_match('/cp|cb|ck|c6|c9|rn|rm|mm|co|do|cl|db|qp|qb|dp|ww/', $this->keystring)) break; } $font_file=$fonts[mt_rand(0, count($fonts)-1)]; $font=imagecreatefrompng($font_file); imagealphablending($font, true); $fontfile_width=imagesx($font); $fontfile_height=imagesy($font)-1; $font_metrics=array(); $symbol=0; $reading_symbol=false; // loading font for($i=0;$i<$fontfile_width && $symbol<$alphabet_length;$i++){ $transparent = (imagecolorat($font, $i, 0) >> 24) == 127; if(!$reading_symbol && !$transparent){ $font_metrics[$alphabet{$symbol}]=array('start'=>$i); $reading_symbol=true; continue; } if($reading_symbol && $transparent){ $font_metrics[$alphabet{$symbol}]['end']=$i; $reading_symbol=false; $symbol++; continue; } } $img=imagecreatetruecolor($width, $height); imagealphablending($img, true); $white=imagecolorallocate($img, 255, 255, 255); $black=imagecolorallocate($img, 0, 0, 0); imagefilledrectangle($img, 0, 0, $width-1, $height-1, $white); // draw text $x=1; $odd=mt_rand(0,1); if($odd==0) $odd=-1; for($i=0;$i<$length;$i++){ $m=$font_metrics[$this->keystring{$i}]; $y=(($i%2)*$fluctuation_amplitude - $fluctuation_amplitude/2)*$odd + mt_rand(-round($fluctuation_amplitude/3), round($fluctuation_amplitude/3)) + ($height-$fontfile_height)/2; if($no_spaces){ $shift=0; if($i>0){ $shift=10000; for($sy=3;$sy<$fontfile_height-10;$sy+=1){ for($sx=$m['start']-1;$sx<$m['end'];$sx+=1){ $rgb=imagecolorat($font, $sx, $sy); $opacity=$rgb>>24; if($opacity<127){ $left=$sx-$m['start']+$x; $py=$sy+$y; if($py>$height) break; for($px=min($left,$width-1);$px>$left-200 && $px>=0;$px-=1){ $color=imagecolorat($img, $px, $py) & 0xff; if($color+$opacity<170){ // 170 - threshold if($shift>$left-$px){ $shift=$left-$px; } break; } } break; } } } if($shift==10000){ $shift=mt_rand(4,6); } } }else{ $shift=1; } imagecopy($img, $font, $x-$shift, $y, $m['start'], 1, $m['end']-$m['start'], $fontfile_height); $x+=$m['end']-$m['start']-$shift; } }while($x>=$width-10); // while not fit in canvas //noise $white=imagecolorallocate($font, 255, 255, 255); $black=imagecolorallocate($font, 0, 0, 0); for($i=0;$i<(($height-30)*$x)*$white_noise_density;$i++){ imagesetpixel($img, mt_rand(0, $x-1), mt_rand(10, $height-15), $white); } for($i=0;$i<(($height-30)*$x)*$black_noise_density;$i++){ imagesetpixel($img, mt_rand(0, $x-1), mt_rand(10, $height-15), $black); } $center=$x/2; // credits. To remove, see configuration file $img2=imagecreatetruecolor($width, $height); $foreground=imagecolorallocate($img2, $foreground_color[0], $foreground_color[1], $foreground_color[2]); $background=imagecolorallocate($img2, $background_color[0], $background_color[1], $background_color[2]); imagefilledrectangle($img2, 0, 0, $width-1, $height-1, $background); // periods $rand1=mt_rand(750000,1200000)/10000000; $rand2=mt_rand(750000,1200000)/10000000; $rand3=mt_rand(750000,1200000)/10000000; $rand4=mt_rand(750000,1200000)/10000000; // phases $rand5=mt_rand(0,31415926)/10000000; $rand6=mt_rand(0,31415926)/10000000; $rand7=mt_rand(0,31415926)/10000000; $rand8=mt_rand(0,31415926)/10000000; // amplitudes $rand9=mt_rand(330,420)/110; $rand10=mt_rand(330,450)/100; //wave distortion for($x=0;$x<$width;$x++){ for($y=0;$y<$height;$y++){ $sx=$x+(sin($x*$rand1+$rand5)+sin($y*$rand3+$rand6))*$rand9-$width/2+$center+1; $sy=$y+(sin($x*$rand2+$rand7)+sin($y*$rand4+$rand8))*$rand10; if($sx<0 || $sy<0 || $sx>=$width-1 || $sy>=$height-1){ continue; }else{ $color=imagecolorat($img, $sx, $sy) & 0xFF; $color_x=imagecolorat($img, $sx+1, $sy) & 0xFF; $color_y=imagecolorat($img, $sx, $sy+1) & 0xFF; $color_xy=imagecolorat($img, $sx+1, $sy+1) & 0xFF; } if($color==255 && $color_x==255 && $color_y==255 && $color_xy==255){ continue; }else if($color==0 && $color_x==0 && $color_y==0 && $color_xy==0){ $newred=$foreground_color[0]; $newgreen=$foreground_color[1]; $newblue=$foreground_color[2]; }else{ $frsx=$sx-floor($sx); $frsy=$sy-floor($sy); $frsx1=1-$frsx; $frsy1=1-$frsy; $newcolor=( $color*$frsx1*$frsy1+ $color_x*$frsx*$frsy1+ $color_y*$frsx1*$frsy+ $color_xy*$frsx*$frsy); if($newcolor>255) $newcolor=255; $newcolor=$newcolor/255; $newcolor0=1-$newcolor; $newred=$newcolor0*$foreground_color[0]+$newcolor*$background_color[0]; $newgreen=$newcolor0*$foreground_color[1]+$newcolor*$background_color[1]; $newblue=$newcolor0*$foreground_color[2]+$newcolor*$background_color[2]; } imagesetpixel($img2, $x, $y, imagecolorallocate($img2, $newred, $newgreen, $newblue)); } } header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', FALSE); header('Pragma: no-cache'); if(function_exists("imagejpeg")){ header("Content-Type: image/jpeg"); imagejpeg($img2, null, $jpeg_quality); }else if(function_exists("imagegif")){ header("Content-Type: image/gif"); imagegif($img2); }else if(function_exists("imagepng")){ header("Content-Type: image/x-png"); imagepng($img2); } } // returns keystring function getKeyString(){ return $this->keystring; } } $domain_cookie = explode (".", clean_url( $_SERVER['HTTP_HOST'] )); $domain_cookie_count = count($domain_cookie); $domain_allow_count = -2; if ( $domain_cookie_count > 2 ) { if ( in_array($domain_cookie[$domain_cookie_count-2], array('com', 'net', 'org') )) $domain_allow_count = -3; if ( $domain_cookie[$domain_cookie_count-1] == 'ua' ) $domain_allow_count = -3; $domain_cookie = array_slice($domain_cookie, $domain_allow_count); } $domain_cookie = "." . implode (".", $domain_cookie); if( ip2long($_SERVER['HTTP_HOST']) != -1 AND ip2long($_SERVER['HTTP_HOST']) !== FALSE ) define( 'DOMAIN', null ); else define( 'DOMAIN', $domain_cookie ); $params = session_get_cookie_params(); if ( DOMAIN ) $params['domain'] = DOMAIN; if( version_compare(PHP_VERSION, '5.2', '<') ) { session_set_cookie_params($params['lifetime'], "/", $params['domain'], $params['secure']); } else { session_set_cookie_params($params['lifetime'], "/", $params['domain'], $params['secure'], true); } @session_start(); $im = new KCAPTCHA(); $_SESSION['sec_code_session'] = $im->getKeyString(); ?> Автопроверка дает следующий конфиг, насколько я вижу нужная библиотека включина, так ли это? Информация о GD: GD Version: bundled (2.1.0 compatible), FreeType Support: Enabled, FreeType Linkage: with freetype, T1Lib Support: Disabled, GIF Read Support: Enabled, GIF Create Support: Enabled, JPEG Support: Enabled, PNG Support: Enabled, WBMP Support: Enabled, XPM Support: Enabled, XBM Support: Enabled, WebP Support: Disabled, JIS-mapped Japanese Font Support: Disabled, Причем ошибки летят даже для страниц, где капчи нет (в шаблоне нет) [Tue Jun 05 10:55:17.262192 2018] [authz_core:error] [pid 5320] [client 162.158.88.238:59288] AH01630: client denied by server configuration: /var/www/www-root/data/www/dota2plusz.ru/engine/classes/min/index.php, referer: https://dota2plusz.ru/event/ [Tue Jun 05 10:55:17.285695 2018] [authz_core:error] [pid 5322] [client 162.158.88.238:59292] AH01630: client denied by server configuration: /var/www/www-root/data/www/dota2plusz.ru/engine/classes/min/index.php, referer: https://dota2plusz.ru/event/ Цитата Ссылка на сообщение Поделиться на других сайтах
cyca 0 Опубликовано: 5 июня 2018 Рассказать Опубликовано: 5 июня 2018 Автор Конфиг из папки antibot #<Files "antibot.php"> # Order Deny,Allow # Allow from all #</files> #<Files "antibot.php"> # Order Allow,Deny # Require all granted #</files> Конфиг из fonts #Order Deny,Allow #Deny from all Цитата Ссылка на сообщение Поделиться на других сайтах
IgorA100 90 Опубликовано: 5 июня 2018 Рассказать Опубликовано: 5 июня 2018 cyca У Вас модифицированный файл modules/antibot/antibot.php !!! Цитата Ссылка на сообщение Поделиться на других сайтах
cyca 0 Опубликовано: 5 июня 2018 Рассказать Опубликовано: 5 июня 2018 Автор А где я могу скачать офф. релиз чтоб српвнить эти файлы? https://dle-news.ru/pressrelease/1702-datalife-engine-v112-press-release.html Цитата Ссылка на сообщение Поделиться на других сайтах
IgorA100 90 Опубликовано: 5 июня 2018 Рассказать Опубликовано: 5 июня 2018 Скачать можно тут: https://dle-news.ru/release/1705-datalife-engine-v112-final-release.html 2 часа назад, cyca сказал: Причем ошибки летят даже для страниц, где капчи нет Проверьте права на папки. Точно не меняли на сервере права доступа к папкам и файлам? Цитата Ссылка на сообщение Поделиться на других сайтах
cyca 0 Опубликовано: 6 июня 2018 Рассказать Опубликовано: 6 июня 2018 Автор Спасибо! Права послетали, но после их восстановления ничего не изменилось Перелазил папку antibot и все заработало. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.