Как сократить обращение к несуществующим страницам?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Как сократить обращение к несуществующим страницам?

Сообщение slo_nik »

Добрый вечер.
Есть сайт, который работает как сборщик почты со сторонних почтовых ящиков через imap.
В логах приложения постоянно появляются записи о попытках доступа к несуществующим страницам, скриптам, файлам. Причём запросы совершенно несвойствены для yii2.
Вот некоторые из них.

Код: Выделить всё

yii\base\InvalidRouteException: Unable to resolve the request "owa/auth/logon.aspx"

Unable to resolve the request "console/"

Unable to resolve the request "wp-content/plugins/wp-file-manager/readme.txt"

Unable to resolve the request "mifs/.;/services/LogService"

Unable to resolve the request "api/jsonws/invoke"
Единственное, что я сделал, это в robots.txt закрыл сайт от сканирования, но это не помогло.
Что можно ещё сделать для сокращения подобных запросов?
Последний раз редактировалось slo_nik 2020.12.02, 00:20, всего редактировалось 1 раз.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как сократить обращение к несуществующим страницам?

Сообщение ElisDN »

Это боты пытаются найти уязвимости. Закройте их в .htaccess:

Код: Выделить всё

RedirectMatch 404 ^/wp-content/.*$
RedirectMatch 404 ^/mifs/.*$
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Re: Как сократить обращение к несуществующим страницам?

Сообщение slo_nik »

ElisDN писал(а): 2020.12.01, 22:38 Это боты пытаются найти уязвимости. Закройте их в .htaccess:

Код: Выделить всё

RedirectMatch 404 ^/wp-content/.*$
RedirectMatch 404 ^/mifs/.*$
Как я понимаю для api/jsonws/invoke нужно указать, правильно?

Код: Выделить всё

RedirectMatch 404 ^/api/jsonws/invoke/.*$
Это только часть запросов, которые попадают в лог. Есть ещё support/default/index, это старая ссылка, структура проекта была немного переделана, но пользователи всё равно иногда заходят на этот адрес.
Пытался сделать редирект в .htaccess

Код: Выделить всё

Redirect 301 /support/default/index http://site.com/default/index 
Но сработала эта директива только на локальном, на рабочем сервере отказывается работать.
Также пробовал делать и так

Код: Выделить всё

   RewriteCond %{REQUEST_URI} ^/support/default/index$
   RewriteRule ^.*$ https://site.com/default/index? [R=301,L]
результат то же, не срабатывает
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Re: Как сократить обращение к несуществующим страницам?

Сообщение slo_nik »

ElisDN писал(а): 2020.12.01, 22:38 Это боты пытаются найти уязвимости. Закройте их в .htaccess:

Код: Выделить всё

RedirectMatch 404 ^/wp-content/.*$
RedirectMatch 404 ^/mifs/.*$
Ещё встречаются такие запросы cid:image001.png@01D6C74A.9D681640/.
Что это?

Сам сайт работает как сборщик почты со сторонних почтовых ящиков через imap.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как сократить обращение к несуществующим страницам?

Сообщение ElisDN »

slo_nik писал(а): 2020.12.02, 00:00 Как я понимаю для api/jsonws/invoke нужно указать, правильно?

Код: Выделить всё

RedirectMatch 404 ^/api/jsonws/invoke/.*$
Неправильно. Последний слэш не нужен.
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Re: Как сократить обращение к несуществующим страницам?

Сообщение slo_nik »

ElisDN писал(а): 2020.12.02, 13:45
slo_nik писал(а): 2020.12.02, 00:00 Как я понимаю для api/jsonws/invoke нужно указать, правильно?

Код: Выделить всё

RedirectMatch 404 ^/api/jsonws/invoke/.*$
Неправильно. Последний слэш не нужен.
Да, я понял.
Но всё равно же будет писать в лог?
А нельзя ли как-то запретить сканирование сайта ботам?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как сократить обращение к несуществующим страницам?

Сообщение ElisDN »

slo_nik писал(а): 2020.12.02, 15:32 Но всё равно же будет писать в лог?
В лог Yii не будет, так как их будет отметать сам Apache.
slo_nik писал(а): 2020.12.02, 15:32 А нельзя ли как-то запретить сканирование сайта ботам?
Полностью нельзя. Можно лишь отлавливать по адресам и некоторых по User Agent.
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Re: Как сократить обращение к несуществующим страницам?

Сообщение slo_nik »

ElisDN писал(а): 2020.12.02, 15:52 В лог Yii не будет, так как их будет отметать сам Apache.
Всё равно пишет в лог.
Порядок следования правил, как я понимаю, тоже играет роль?
Все правила для переадресации должны быть расположены первыми, а затем уже остальные правила?
Мой .htaccess сейчас выглядит так

Код: Выделить всё

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine on
</IfModule>

<IfModule mod_rewrite.c>

RedirectMatch 404 ^/wp-content/.*$
RedirectMatch 404 ^/mifs/.*$
RedirectMatch 404 ^/api/jsonws/invoke.*$
RedirectMatch 404 ^/owa/auth/logon.aspx.*$
RedirectMatch 404 ^https://u4682302.ct.sendgrid.net/.*$
RedirectMatch 404 ^/actuator/.*$
RedirectMatch 404 ^/teamportal/.*$


   RewriteCond %{REQUEST_URI} ^/.*
   RewriteRule ^(.*)$ web/$1 [L]

   RewriteCond %{REQUEST_URI} !^/web/
   RewriteCond %{REQUEST_FILENAME} !-f [OR]
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^.*$ web/index.php
</IfModule>
В директивах указан запрет для wordpress, но в логах всё равно есть записи вроде этой
Unable to resolve the request "wp-content/plugins/wp-file-manager/readme.txt"
И появилась она уже после того, как я внёс запрет в .htaccess.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как сократить обращение к несуществующим страницам?

Сообщение ElisDN »

slo_nik писал(а): 2020.12.02, 16:51 Всё равно пишет в лог.
А если самому зайти по адресу /wp-content/plugins/readme.txt, то выводится страница 404 от сервера или страница Yii?

Если не от сервера, то RedirectMatch не сработал и нужно переписать на что-то вроде:

Код: Выделить всё

RewriteRule ^wp-content/ - [L,R=404]
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Re: Как сократить обращение к несуществующим страницам?

Сообщение slo_nik »

ElisDN писал(а): 2020.12.02, 18:35
А если самому зайти по адресу /wp-content/plugins/readme.txt, то выводится страница 404 от сервера или страница Yii?
Если перейти по этому адресу - выдаёт страницу ошибки yii
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Re: Как сократить обращение к несуществующим страницам?

Сообщение slo_nik »

ElisDN писал(а): 2020.12.02, 18:35
Проблема в сервере.
Я сделал специально ошибку в .htaccess, вместо директивы Redirect написал Redirec, без t в конце и сайт продолжил работать.
Заглянул в debug панель - используется fpm и nginx

Код: Выделить всё

$_SERVER['SERVER_SOFTWARE']	nginx/1.14.2
Как в этом случае решить проблему?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как сократить обращение к несуществующим страницам?

Сообщение ElisDN »

Тогда закрывать через конфиг Nginx:

Код: Выделить всё

location /wp-content {
    return 404;
}
slo_nik
Сообщения: 344
Зарегистрирован: 2013.10.07, 19:08

Re: Как сократить обращение к несуществующим страницам?

Сообщение slo_nik »

ElisDN писал(а): 2020.12.03, 00:50
Я имел ввиду как можно сделать переадресацию без редактирования конфига nginx, что-то подобное как .htaccess для apache2? Но уже понял, что этого сделать нельзя без редактирования конфига nginx.
Доступа к нему у меня нет.

Благодарю за помощь.
Ответить