Италия, Калабрия…

Я давно скопировал этот коротенький рассказ Мещерякова, япониста и писателя, с сайта, который сейчас недоступен. Решил опубликовать к предстоящему событию.

Италия, Калабрия, городок Пиццо… Разгар летнего дня: камни плавятся, лицо горит, во рту пересохло. На скамеечке напротив памятнику Умберто I, с остановившимся в девятнадцатом веке взглядом, расселись пенсионеры, разодетые по последней в их жизни моде: шляпы, пиджаки и галстуки, начищенные туфли на босу ногу. Они шумно обсуждают последние новости: Марко поколотил Марию, скоро свадьба у Никколо. Вспоминают они и те славные времена, когда калабрийский «Катандзаро» играл в высшей футбольной лиге и занял аж седьмое место. Один старик признается: «Мочу стал держать плохо…» Другой его перебивает: «Не бери в голову! В детстве было ведь еще хуже! Так что ты демонстрируешь прогресс!» Старики никогда не сжимают зубы, их попросту нет: свои выпали, на чужие они не заработали, но это не мешает им наслаждаться жизнью. Слово «меланхолия» им незнакомо.
Крепкий дым пенсионерских сигарилл мешается с йодистыми ароматами из рыбной лавки. Тут к пенсионерам подковыливает их подружка — с палочкой. Похоже, они видят ее в таком прикиде впервые, живо интересуются, что с ней. Она гордо отводит палочку в сторону, театрально поднимает вверх левую руку и с нескрываемым фонетическим блаженством восклицает: «Полиартрозо!» И в этот момент кажется, что ничего страшного с ней не произошло и никогда не произойдет, что она сейчас запоет арию…
А.Н. Мещеряков https://www.livelib.ru/author/112532/top-aleksandr-mescheryakov

…иногда я вижу себя среди этих стариков… порой завидую им.

Про сайт на wordpress, часть 3-1 “защита+”

Посмотрел в Архив заметок: первая запись от февраля 2017 года: “сайт в разработке”. Следующие записи, тоже тестовые, в 21-м году и только под условным заголовком “Пятая” — фрагмент из повести Чехова “Скучная история”, — точное и яркое отражение моих последних лет работы преподавателем… Но заметки в блог на персональном сайте — не главное. Выстроив основной функционал как было задумано, в соответствии с реалиями Интернета того времени, я занялся наполнением сайта содержимым. Дело продвигалось очень медленно, с большими перерывами… но здесь не об этом речь.
Прошло 10 лет и реалии Интернета изменились в худшую сторону, особенно в последнее время. На Хабре https://habr.com/ об этом много разных статей, но темы, на которые здесь обращаю внимание, можно отнести к одному из трех типов: 1) взлом сайта и внедрение вредоносных скриптов, 2) кража контента ботами — краулерами и зловредами, 3) персональные данные (ПД) пользователей. На самом деле проблем гораздо больше, но они как бы не относятся к защите сайта и контента. Сосредоточимся на первом и втором пунктах, они во многом взаимосвязаны. Надо сразу сказать: многое из того, что узнал, мне не реализовать, так как касается настроек сервера, да и 100% все равно не достичь. В чем еще раз убедился — и даже переспросил в чате своих “айтишников”, — авторизация, как она у меня изначально была задумана и реализована, это главное средство защиты приватного контента, плюс настройки в админке wordpress вроде бы закрывают доступ ботам.
Перво-наперво подготовил файлы .htaccess с инструкциями для сервера, разместил их в корневой и еще в нескольких папках. Скрипты этого файла “говорят” серверу Apache: разреши, или запрети доступ к папкам или файлам сайта всем, или списку ботов; разреши, или запрети выполнение скриптов на РНР, и многое — многое другое. Способ этот хорошо известный и есть множество сайтов, готовых объяснить назначение и содержание .htaccess, не говоря уже про ИИ от Гугла, который теперь первым вылезает в поисковой выдаче, но я лишь в одном, другом случае, доверился ему — и попался, но об этом чуть позже.
Кратко: предотвратил хотлинки (воровство картинок); ограничил число одновременных подключений до 10 (один из способов защиты от DDoS атак, да, не самый эффективный, но все же); защита сайта от так называемых «скриптовых инъекций»; запрет на выполнение *.php — файлов в папках, где он не нужен; запрет на выполнение файлов xmlrpc.php и чтение файлов wp-config.php и readme.html ( сервис xml\rpc не использую, а в readme содержится версия wordpress — подсказка хакерам…).
Однако, те, кто знаком с проблемой, сказали бы: “а где блокировка по IP и по HTTP запросам?” Да, это распространенные и, пожалуй, лучшие способы защиты, если в скрипте перечислил всех зловредных ботов, а они все прибывают… Чтобы их выловить, нужно иметь доступ к логам сервера или\и пользоваться специализированными сервисами (такими как Cloudflare), или плагинами, но ни то, ни другое на сегодняшний день я сделать не могу по «техническим причинам» — вы понимаете, о чем я…
В итоге собрал пять файлов .htaccess, разложил их в корневую и другие папки с “чувствительным” контентом. Что характерно: при копировании на сервер по FTP этот файл “исчезает”, становиться невидимым, но сервер Apache его выполняет и, можно надеяться, защиту сайта я укрепил.

Про сайт на wordpress, часть 3-2 “ну, кука, погоди!”

Продолжаю…
Дополнительно решил установить файл robots.txt, в нем у меня перечислены папки и файлы, заходить на которые ботам не разрешается. Принципиальная разница: этот файл должны прочитать боты, чтобы знать, что им разрешено, а в какие папки запрещено заглядывать. Казалось бы — вот панацея, полная защита 2-го типа, описанного выше, но недавно прочел на Хабре статью и стало немного грустно: краулеры и зловреды могут просто игнорировать этот файл и их может остановить только защита 1-го типа по .htaccess. Послушными являются лишь “правильные” боты тех фирм, которые дорожат своей репутацией, например, поисковики Гугла и Яндекса, но и это уже не мало, так как если их поймают на краже контента, скандала не миновать (примеры на Хабре есть).
Последнее, чем я озаботился, были файлы cookie (куки, будем так их называть, отбросив последнюю букву от известного русского слова 🙂 ). Эта тема, у меня под номером 3) см. в первой части, стала особо “токсичной” для разработчиков сайтов в связи с масштабными утечками ПД и куки здесь играют свою роль.
Сейчас, после принятия ряда законов, почти на каждом сайте появился баннер вида «мы используем куки…находясь здесь, вы соглашаетесь… с обработкой ПД…» и единственная кнопка типа «принять\согласен\понял…». Я просто игнорирую этот баннер, часто после регистрации он сам исчезает, но, полагаю, мои ПД все равно используются…
Нельзя сказать, что эта проблема новая и с самого начала я решил не собирать, не использовать ПД, благо сайт не коммерческий, а мои ролевые участники прописаны мною в админке и регистрации на сайте нет. Да, на форме авторизации есть вход «в гостиную» без пароля, эта страница в “вечной” разработке, в куки попадает IP-адрес гостя, но я его не использую. Об этом говорит надпись в футере: «your personal data is not used», а в файл темы functions() добавлены два способа защиты из арсенала wordpress: wp_clear_auth_cookie() — ясно из названия, и nocache_headers() — полностью удаляет HTTP заголовок, отключает кэширование страниц в браузерах. Таким образом, автоматически удаляются все cookie-файлы при закрытии сайта.
Все это я сделал “по своему разумению”, не оглядываясь на какие-то законы, много лет тому назад, хотя, почитывая на эту тему разных гуру, в первую очередь wp-kama.ru и на Хабре (habr.com), понимал, что этого может быть недостаточно: в браузере сохраняются куки плагинов, комментариев и сторонних сайтов, с которых зашли на твой сайт.
И вознамерился я усилить защиту, подстраховаться, почистив эти куки. Так как раньше с ними не работал, пришлось походить по сайтам, на которые выводит поисковик Гугла примерно по такому запросу: «Как отключить все cookie в вордпресс кроме админки». Большинство авторов вторят: используй плагины, чего я никогда делать не буду. Сейчас в поисковой выдаче гугловский ИИ в первых строках выдает свои (да?) рекомендации кода. Что интересно: стоит чуть изменить текст запроса, ответ (код) будет другим, но тоже в тему. Вроде все понятно, вот подходящий вариант: время жизни куков задается отрицательным и они удаляются автоматически… И тут я допустил оплошность — не стал делать бэкап сайта, так как контент не обновлялся с ноября, был “ручной” бэкап по FTP в декабре и я знал: на хостинге в полночь архивируют все сайты и хранят неделю, а у меня — только позавчерашняя редакция с добавлением файлов robots и .htaccess… Сохраняю прежний файл functions.php, по FTP “заливаю” обновленный — и шок: сломал сайт! Не загружается форма входа, пропал архив! 🙁 Походил по меню, контент вроде цел; вернул прежний functions.php — не помогло! Похоже, сломалась база данных, а я был уверен, что куки никак этого сделать не смогут! Да, я дважды оплошал, не сделав копию и поверив в код, выданный ИИ. Не теряя времени, в «Мастерхост» заказал восстановление из ихнего ночного бэкапа, через два часа пришел е-майл: «Здравствуйте! Сделано.»… Дня через два, размышляя над случившимся, на сайте wp-kama.ru нашел описание файла wp_clear_auth_cookie() и вижу: в нем куки удаляются установкой нулевого времени жизни… как говориться “не зная броду..” — доверившись ИИ, — я потратил несколько дней понапрасну, сломал сайт и с этой кухней больше не связываюсь. Мне не нужно предупреждать гостей более того, что написано в футере — я действительно не испольную их ПД, а там всего лишь IP, которое исчезает при выходе с сайта через короткое время.
А как же куки комментариев? Комментарии у меня могут оставлять только авторизированные, ролевые пользователи моего персонального сайта; эти куки также удаляются при выходе.
И наконец, так называемая форма обратной связи — плагин, используемый мною на ранее созданных сайтах. К счастью, Contact Form 7 на двух старых сайтах уже не работает, стало быть не оставляет следы в куках (подчеркивается: «в стандартной конфигурации» ) . К сожалению, применить его не могу по тем же «техническим причинам» и на сайте стоит заглушка…
Вот и все, что смог сделать на сей день и решил: пока этого достаточно, все предпринятое лишь вторая линия защиты.