
Проблема: Багфикс недостаточная фильтрация входящих данных на дле движке движке всех версий
Решение проблемы проверки на правильность alt name в URL новости с редиректом на верный url или выводом ошибки 404
Ошибка в версии: все
Автор фикса: RooTM
Степень опасности(SEO): Высокая
Исправление только для тех кто использует ЧПУ(и все модули на dle и dle шаблоны сообщений поддерживают ЧПУ):
Для исправления откройте файл engine/modules/show.full.php и найдите:
$news_found = TRUE;
Ниже добавьте один из вариантов:
1-ый вариант:
отдает 404 ошибку
if($config['allow_alt_url'] == "yes"){preg_match( '/'.$row['id'].'-(.*?).html/is' , $_SERVER["REQUEST_URI"] , $parse_alt_name );if($row['alt_name'] != trim($parse_alt_name[1]) )$news_found = FALSE; if( !$news_found ) break;}
2-ой вариант:
делает редирект на правильный URL:
if($config['allow_alt_url'] == "yes"){preg_match( '/'.$row['id'].'-(.*?).html/is' , $_SERVER["REQUEST_URI"] , $parse_alt_name );if( $row['alt_name'] != trim( $parse_alt_name[1] ) ){$true_url = str_replace( $parse_alt_name[1] , $row['alt_name'] , $_SERVER["REQUEST_URI"] );header('HTTP/1.1 301 Moved Permanently');@header ( 'Location: ' . $true_url );exit;}}
Первый вариант (отдает 404 ошибку) позволит избежать попадания под фильтры в ПС при попытках недоброжелателей.
Предлагаем скачать для DLE решение проблемы проверки на правильность alt name в URL