В конце URL появляется какая то дребедень

12
mff
На сайте с 21.02.2008
Offline
266
mff
1482

Здравствуйте коллеги!

Вчера обнаружил в вебмастере вот такие проиндексированные странички на самописном сайте:

/channel.php?ch=4786/

/channel.php?ch=1967'
/channel.php?ch=5567 sasun miqaelyan
/channel.php?ch=5588%2F
/channel.php?ch=5501%20mobil
/channel.php?ch=2480`
/channel.php?ch=5834/
/channel.php?ch=5834%2F
/channel.php?ch=2401'
/channel.php?ch=5588%2F
/channel.php?ch=5588/
/channel.php?ch=1582 imedi.jiÂÂÂÂÂ
/channel.php?ch=1582+imedi.jiÂÂÂ
/channel.php?ch=2491 -
/channel.php?ch=4165%E5
/channel.php?ch=5070&post=143051327_677
/channel_eng.php?ch=2516 только что
/channel.php?ch=5588\\\\\\\\
/channel.php?ch=4162а
/channel.php?ch=6101res://ieframe.dll/defaultbrowser.htm
/channel.php?ch=4223%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C%5C

И таких страниц там немало накопилось за 9 лет. Честно говоря я понять не могу, откуда они беруться?!

У меня там могут быть только странички вида /channel.php?ch=x , где х - это число от 1 до 99999. Никаких закрывающих слэшей и прочей дребедени там не должно быть.

Подскажите пожалуйста как с этим бороться?

С уважением, Александр.

S
На сайте с 30.09.2016
Offline
469
#1
mff:
Подскажите пожалуйста как с этим бороться?

Не отдавать ответ 200 на несуществующие страницы.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
mff
На сайте с 21.02.2008
Offline
266
mff
#2
Sitealert:
Не отдавать ответ 200 на несуществующие страницы.

Спасибо! Не могли бы вы подробнее рассказать как это сделать? Дело в том, что если набрать http://site.ru/channel.php?ch=1582 и http://site.ru/channel.php?ch=1582+imedi.ji - контент будет один и тот же. С ув.

Aisamiery
На сайте с 12.04.2015
Offline
293
#3

ищут SQL инъекции.

Как отдавать, берете в файле channel.php где нибудь вначале ставите


<?php // начало файла, первая строка

if (isset($_GET['ch']) && !is_numeric($_GET['ch'])) {
header("HTTP/1.0 404 Not Found");
exit();
}

Ну это если прям костылями прибивать =)))

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
mff
На сайте с 21.02.2008
Offline
266
mff
#4

Aisamiery, спасибо! Прописал этот код, теперь белый лист если пройти по ссылке, где к числу дребедень дописана. Подскажите можно как то оформить такую страницу, чтоб пользователь не ушел с нее?

С ув.

Aisamiery
На сайте с 12.04.2015
Offline
293
#5

mff, Оформить конечно можно, я же не знаю что у вас там за система.

У вас проиндексированные страницы, а значит у вас стоит метрика с галкой индексации новых страниц и на эти страниц попадал только тот, кто подбирал инъекцию, данный код отдает 404 заголовок, что скажет ботам что таких страниц нету и яндекс выкинет эти страницы, но для пользователя вы можете сделать редирект на JS для случайных пользователей, например переписать так:


<?php // начало файла, первая строка

if (isset($_GET['ch']) && !is_numeric($_GET['ch'])) {
header("HTTP/1.0 404 Not Found");
// Разметка
$HTML = <<<MSG
<html>
<head><title>Ошибка 404. Страница не существует</title></head>
<body><script>window.location.href='http://site.ru/';</script></body>
</html>
MSG;
echo $HTML;
exit();
}
S
На сайте с 30.09.2016
Offline
469
#6

Да обычный серверный переход надо сделать, типа в .htaccess прописать

ErrorDocument 404 /404.php
И уже эту страницу /404.php оформлять как положено.
mff
На сайте с 21.02.2008
Offline
266
mff
#7

Sitealert, Спасибо! Вот это бы подошло!!! Есть страничка 404.php

Подскажите пожалуйста, как мне перенаправлять на эту страничку, если переменная ch - не является числом? Что нужно дописать этом в коде:

if (isset($_GET['ch']) && !is_numeric($_GET['ch'])) {

header("HTTP/1.0 404 Not Found");
exit();
}

?

В .htaccess у меня есть правило для 404 странички. Но оно срабатывает только если в URL несуществующая страничка или каталог. С ув.

S
На сайте с 30.09.2016
Offline
469
#8

if (isset($_GET['ch']) && !is_numeric($_GET['ch'])) {
header("HTTP/1.0 404 Not Found");
include '/404.php';
die;
}
mff
На сайте с 21.02.2008
Offline
266
mff
#9

Sitealert, большое спасибо! Всё заработало как часы :-)

Извините за глупые вопросы, просто хотелось узнать как другие бы поступили в данной ситуации.

Подскажите пожалуйста еще, нужно ли в robots.txt прописывать: Disallow: /404.php ?

С уважением, Александр.

S
На сайте с 30.09.2016
Offline
469
#10

mff, закрывайте в роботсе, хуже не будет. В поиске эта страница точно ни к чему.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий