Archive

RSS-feed блога на WordPress при включенной защите от сетевых атак на хостинге

Некоторое предисловие

Простая задача по поддержанию блога на собственном хостинге подчас перестает быть такой простой, как казалось на первый взгляд. Так, приходится выбирать между функционалом и безопасностью, между быстродействием и оформлением. Так, начав свой путь в поддержании блога на WordPress-движке с 50 плагинов-расширений, я перешел на 5 самых необходимых, без которых трудно обойтись, дописав весь нужный функционал в сам код темы. Так, с использования тем со встроенными фичами я пришел к созданию child-тем, добавляя каждую новую функцию и элементы оформления только по необходимости. Слишком много лазеек оставляют расширения, слишком много ресурсов забирают дополнения. Поэтому, если делать блог самому — это труд. Не тяжелый, и тут не надо иметь семь пядей во лбу. Но он должен быть вдумчивый, последовательный и кропотливый.

И вот, вроде бы, когда у тебя уже полностью собранный под тебя продукт, который тебя устраивает на 120%, появляется какая-нибудь информация о том, что у тебя что-то не работает и хотелось бы, чтобы всё-таки работало. Эти вещи каждый раз разные по объему, по трудности, и они никогда не повторяются даже близко.

И вот, после непродолжительного счастливого владения своим продуктом, вдруг появились они — вездесущие сканеры уязвимостей, тотальная регистрация ботов в системе, попытки захватить контроль над админкой, используя слабые места файловой системы хостера… В общем, в какой-то момент эта борьба с ветряными мельницами начинает надоедать. И вместо ежедневного добавления в access deny подсетей бот-ферм, ты хочешь найти кое-что более простое и в то же время лучшее. Хорошо, что сейчас куча инструментов против бот-ферм. И, конечно, первое, что приходит в голову — защита от сетевых атак вроде CloudFlare. У моего хостера подобный инструмент есть. Подключаем. Думаем, что всё под контролем, но… всегда есть это но.

Вновь включенная защита от сетевых атак действует по принципу проверки клиента-посетителя на вшивость и проверки на всё и вся. Сначала клиент загружает незаметно быстро JavaScript, который, если всё хорошо, потом уже говорит браузеру, где взять нормальный контент. Это же хорошо? Да! Когда оно там как-то работает без тебя, не мешает тебе и твоим читателям. А когда оно начинает мешать? Отключать? А бот-фермы? Не отключать? А читатели?

В общем, этот метод проверки приложил rss-feed этого блога. Потому что на первый же запрос он любому rss-клиенту (да и валидатору) отвечал HTML/Text, на что тот обижался.

Как-то отдельно страницы выключить из работы защитника мне не удалось, поэтому пришлось поискать нестандартное решение. И оно нашлось. Необходимо просто-напросто выкладывать rss-ленту на другом домене.

Проблема с RSS: как её решить

Пример именно моей проблемы

Я столкнулся с этой проблемой на сайте. Стандартный фид WordPress по адресу https://brmx.ru/feed/ отдавал внешним валидаторам HTML-страницу с JavaScript-проверкой и cookie. Браузер проходил эту проверку, а валидаторы и клиенты rss не могли выполнить JavaScript, поэтому видели обычную веб-страницу.

Решение

Код в данном случае я публиковать пока не буду, потому что там есть технически уязвимые моменты, при раскрытии которых данный блог можно приложить. Поэтому пока теория, а для практики найдем какое-нибудь другое время.

Для решения проблемы был создан отдельный субдомен https://rss.brmx.ru и на нем опубликован PHP-скрипт по адресу /rss.php, который формирует RSS напрямую через WordPress, в обход нашей системы защиты.

Логика проделанного

  1. Создаем отдельный субдомен rss.anyrandomdomain.ru для самостоятельной выдачи RSS без проблемной защиты основного сайта.
  2. На субдомене размещаем PHP-скрипт, который подключает WordPress через wp-load.php, получает опубликованные записи и формирует RSS 2.0 (тут важно, чтобы скрипт работал в том же файловой системе на стороне сервера, и имел к папке установки wordpress необходимый доступ).
  3. В процессе настраиваем путь к WordPress и следим чтобы версия PHP на субдомене была такой же, как и на основном домене.
  4. Скрипт именуем как угодно (у меня — это rss.php) только не index.php, чтобы избежать обработки адреса как главной страницы основного сайта.

Резюме

Рабочий адрес RSS у моего сайта теперь такой: https://rss.brmx.ru/rss.php (ссылка на фид в самом низу каждой страницы этого сайта).

И хотя сейчас всё меньше людей пользуются RSS, а в стандартных рекомендациях в плагинах по безопасности WordPress даже есть указания по отключению rss-фида, всё же надеюсь на то, что этот пост поможет вам решить проблему с RSS на вашем сайте.

Антивирусы

С последними релизами Windows, начиная с 8.х, большинство из нас как-то привыкли к мысли, что никакой сторонний антивирус уже и не нужен, хватает встроенных средств типа Windows Firewall и Defender. Однако, последние события в сфере информационной безопасности навели на мысль проверить свой десктоп на наличие возможных проблем. И…

Проверка полноценным kaspersky rescue disk показала, что проблемы всё же были. 239 проблем, 200 из которых в формате предупреждений, остальные — скрытые трояны в разных торрент файлах, майнинговые расширения для IE (как??? и откуда???).

За последние пару лет помню, что Defender на что-то таки ругался, но это что-то — это kms активатор. Всё остальное его устраивало.

Так как сильно большого выбора легальных антивирусов на российском рынке сейчас нет, какой выход?

Легальные:

  1. Раз в месяц хотя бы делать полную проверку вышеупомянутым KRD.
  2. Найти на софтосвалках версию Kaspersky Antivirus Free (сейчас такого предложения от KAV нет, и максимум, что сейчас предлагается — 30-ти дневная бесплатная версия тарифа Standart)
  3. KAV Standart за 1,8к в год (Или Dr.Web примерно за те же деньги).

Ещё есть PRO32 и NANO, но всё тоже к пункту 3.

Не легальные:

  1. Torrent tracker — поиск работающих вылеченных решений от известных мировых брендов.

wordpress

Как-то в сообществе web-разработчиков CMS WordPress не сильно котируется. Выделяются следующие проблемы:

  1. Глобальные переменные.
  2. Файловая архитектура — страница собирается из отдельный модулей.
  3. Неэффективная работа с БД.
  4. Отсутствие некоторых встроенных функций, типа кеширования, которые расширяются только плагинами.
  5. Необходимость детальной оптимизации для высоконагруженных проектов.

И при этом WordPress является самой популярной CMS в интернете. Вот тут утверждается, что 43,5% всех сайтов сети работает именно на нём. Причём, многие разработчики, говоря о проблемах движка, вечно и везде его критикуя, сами с радостью делают на нём проекты, потому что это гибко, быстро и в целом даёт приемлемый результат. Парадокс.

CMS WordPress даёт возможность сделать свой собственный ресурс вообще не обладая никакими знаниями в web-разработке. Так, например, сделан этот сайт. Из всех сложностей, с которыми может столкнуться web-разработчик, тут произошло удаление пары строчек php-кода из шаблона, для придания ему большей компактности и изменение цвета в шаблонном css-файле. Всё! Остальное поставлено методом тыкания кнопочек и проставления галочек.

Поэтому, как начальный инструмент для создания своего собственного web-ресурса — рекомендую к использованию именно CMS WordPress. Скорее всего вам никогда ничего другого и не понадобится. А если понадобится, то очень много специалистов в данной области, и относительно дешево сайту можно прикрутить или изменить любой функционал.

Единственное неприятное возможное последствие от использования данной CMS — это необходимость постоянного контроля безопасности. Так как движок очень популярен, уязвимости в нём и в плагинах очень быстро находят и используют. Поэтому необходимо обзавестись парочкой плагинов, типа вот такого и вот такого, под свои потребности, которые помогут оперативно выявлять уязвимости.

Трудоёмкость

Последний релиз ядра Linux содержит >26 млн. строк кода.

В среднем, программист пишет 10-12 строк кода в день (данные сильно усреднены). Особо одарённые, чётко идущие по плану программисты, могут писать по 100 строк кода в чистую. Но это редкость.

Для того, чтобы обычному программисту с нуля написать что-то подобное ядру Linux, понадобится примерно 6,5 тыс. лет.

Особо одарённый, разрабатывающий ядро чётко по плану и всегда замотивированный, напишет его за 720 лет.

Разбан?

Собственно вот, без всяких VPN и Proxy, с официального сайта мелкомягких скачивается и ставится полноценная IDE для разрабов на C# и Cpp под .Net (Ентерпрайз и про не пробовал, но вот с комьюнити точно всё в порядке).

ПО для доступа к удаленной машине

Сейчас для многих актуальной является проблема использования ПО для подключения к удалённым компьютерам. Teamviewer не работает, Anydesk всё больше склоняет пользователей к платным тарифным планам, которые у нас вряд ли удастся оплатить… качество работы других сервисов оставляет желает лучшего.

Что же делать в этой ситуации?

Путь не самый простой, но работающий — поднять свой собственный сервер и поставить на него серверную часть ПО удалённого доступа, а клиентскую часть перенастроить на этот сервер.

В качестве ПО для такой модели хорошо себя показал RustDesk (https://rustdesk.com/).

Вы получаете свой собственный сервис, работающий внутри рунета.

Tag cloud:

Категории

Календарь

Октябрь 2026
Пн Вт Ср Чт Пт Сб Вс
 1234
567891011
12131415161718
19202122232425
262728293031