Не совсем понятно конечно зачем воркеры для статичного сайта, но сам сервис CloudFlare Workers довольно интересный)
Также для статичных сайтов очень хорошие решения это Vercel и Netlify.
В защиту Wordpress скажу что его тоже можно использовать более грамотно нежели тяжелая универсальная премиум-тема + 100500 тяжеленных плагинов.
В WP есть возможность определить типы данных, а для удобного навешивания дополнительных полей можно взять всего один плагин — ACF. REST API там также есть из коробки.
Я встречал проекты где WP использовался в качестве Headless-CMS ;)
Также есть очень интересная Headless CMS — Cockpit
Сталкивался с тем что большинство подобных проектов перегружены функционалом. Поэтому собрал свое решение с минимальным количеством используемых контейнеров ориентированное на максимально быструю настройку и запуск проекта.
Вообще тут стоило сперва развернуть еще один тестовый сервер и там обкатать на паре-тройке сайтов обновление версии БД. Чтобы избежать вот таких факапов.
Не совсем понятно — получается что в вашем решении для того чтобы сайт работал надо постоянно держать запущенным strapi? Или можно допустим локально запустить strapi, добавить контент, запустить генератор и получившуюся статику залить на сервер?
Также интересен вариант с комментариями и Strapi API.
Вставлю свои пять копеек в заметку. Частенько приходилось сталкиваться с таким.
Вообще распространенные CMS обычно не подвергаются целенаправленой атаке, а подвергаются массовому взлому через известные дырки или зашитые закладки в зануленных темах и шаблонах.
Итак, что надо сделать в первую очередь:
1) Очистить сайт от заразы.
Для того чтобы исключить появление новых копий вредоносов в момент очистки можно либо проводить очистку на локальной копии либо закрыть на время сайт (к примеру через .htaccess).
Намного лучше если на хостинге будет доступен ssh. Find и grep помогут намного эффективнее непонятных айболитов (ищем base64, eval, mail, find -mtime), а код сайта в дальнейшем можно будет добавить в git парой команд.
Только главное не забыть лишнее засунуть в .gitignore (можно пошариться на gitignore.io в поисках готового варианта). Также код лучше дополнительно забэкапить во внешнюю приватную репу (bitbucket/giltab в помощь).
2) Защита
Также следует изучить структуру CMS и явно запретить исполнение php в тех директориях в которых скрипты быть не должны (всякие assets и upload). Сделать это можно в .htaccess и для надежности запретить его перезапись через chattr.
Настоятельно рекомендую включить директиву mail.log и писать лог отправки писем. В случае старта волны спама можно будет легко отследить откуда шлются письма.
Закрыть вход в админку дополнительно через BasicAuth или вовсе ограничить списком разрешенных ip.
Выключить ненужные штуки типа xmlrpc.php у Wordpress.
Сменить пароли в CMS, сменить пароли на FTP/SSH (кто знает, может пароли утекли будучи сохраненными в ftp-клиенте админа)
Так мне нравятся статьи с подобными пафосными заголовками. Собрал он распознавалку номеров за 57 строк, ага. Вот только в openalpr тысячи строк и основная заслуга за качество распознавания лежит на этих ребятах, а не на человеке который написал обертку к этому коду в пару строк.
А вспомнил еще как в одной точке продаж мне записали Mandrake 11 на двух дисках. Диск записывала девушка-продавец и на болванках синим маркером было выведено Linex disk 1 и disk 2
Хороший пост. Прочитал с удовольствием!
Поделюсь тогда и своей байкой =)
В 2003 году с появлением модемного интернета и компьютера я начала все это дело очень активно изучать (с постоянной переустановкой винды конечно же). И тогда же начал читать подшивки журнала Хакер в виде 200-300 кб html-архивов. Журналы тогда стоили дорого и не в каждом киоске их можно было купить. Поэтому я прочитал большую часть выпусков без картинок =)
И вот там то часто упоминался Linux. Естественно мне захотелось его попробовать. Но где в 2003 году в Ульяновске найти диск с дистрибутивом линукса мне было непонятно.
Выручил одноклассник который взял дистр у своего брата. Это был Red Hat 8.0 на 3-х дисках.
Уже тогда я поразился красоте и подробности установщика Anaconda. Залип с установкой часа на 3. Итог предсказуем — в линуксе не было интересных игрулей, не заработал мой PCI модем ZyXeL и вообще я мало понимал чем мне может пригодиться линукс именно сейчас. В итоге я его снес и установил обратно Win98, но впечатления о линуксе уже остались хорошие =)
Через год в прокате дисков я увидел диск с Knoppix. Несмотря на то что это был Live-CD я его поставил на комп второй системой и бодро боролся с его глюками. Даже каким-то волшебным образом удалось собрать из исходников драйвер на win-модем и выйти в интернет с Линукса! =) Правда связь постоянно отваливалась, но это было уже что-то.
Ну а дальше уже пошли бесплатные диски с Убунту (с 4.10 если не изменяет память), а в 2006 с появлением провайдера с локальной сетью я перешел на ASP Linux 11. Гордо держал на нем веб-сервер и ftp (на самом деле никому не нужные) и разбирался с системой. К слову сказать 12 версия данного дистрибутива мне не понравилась, а вот одиннадцатая оставила только положительные впечатления.
Потом был перерыв с виндой.
А потом с 2011 по 2017 Linux использовался как постоянная рабочая система примерно в такой исторической последовательности Ubuntu, Lubuntu, Xubuntu, Fedora, Manjaro, Fedora, Xubuntu с редкими уходами на другие дистры.
Большое спасибо за статью. Узнал из нее о существовании fzf =)
Сам когда то тоже любил обвешать шелл кучей плагинов, но в итоге забывал пользоваться доброй половиной из них, а подтупливающий терминал начинал раздражать. Вернулся к bash с кучкой алиасов и git-prompt.sh
Ну и теперь вот fzf добавился.
Раньше переходил с дистра на дистр (В основном из семейства Ubunu). А теперь вот уже второй год сижу на Fedora с Gnome. Практически все дефолтное. Радует)
Очень интересно =)
Для себя проблему решил сборкой нескольких контейнеров с LAMP и парой bash-скриптов для старта. В итоге получается что для старта нового проекта нужно просто скопировать директорию вида default-php-5.x и внутри в www положить проект, в db положить базу. Конфиги также линкуются bash-скриптом при старте сервера.
А вообще с docker-compose можно еще веселее конфигурацию замутить.
Также для статичных сайтов очень хорошие решения это Vercel и Netlify.
В WP есть возможность определить типы данных, а для удобного навешивания дополнительных полей можно взять всего один плагин — ACF. REST API там также есть из коробки.
Я встречал проекты где WP использовался в качестве Headless-CMS ;)
Также есть очень интересная Headless CMS — Cockpit
Сталкивался с тем что большинство подобных проектов перегружены функционалом. Поэтому собрал свое решение с минимальным количеством используемых контейнеров ориентированное на максимально быструю настройку и запуск проекта.
Возможно вам будет интересно — github.com/rhamdeew/docker-compose-php
Вставлю свои пять копеек. Написал как то небольшую инструкцию к этому образу. Вдруг кому-то окажется полезной — hmdw.me/openvpn-docker-new
Обхожусь без админ-панели. Проблема только с комментариями (не нравится Disqus).
Также интересен вариант с комментариями и Strapi API.
Вообще распространенные CMS обычно не подвергаются целенаправленой атаке, а подвергаются массовому взлому через известные дырки или зашитые закладки в зануленных темах и шаблонах.
Итак, что надо сделать в первую очередь:
1) Очистить сайт от заразы.
Для того чтобы исключить появление новых копий вредоносов в момент очистки можно либо проводить очистку на локальной копии либо закрыть на время сайт (к примеру через .htaccess).
Намного лучше если на хостинге будет доступен ssh. Find и grep помогут намного эффективнее непонятных айболитов (ищем base64, eval, mail, find -mtime), а код сайта в дальнейшем можно будет добавить в git парой команд.
Только главное не забыть лишнее засунуть в .gitignore (можно пошариться на gitignore.io в поисках готового варианта). Также код лучше дополнительно забэкапить во внешнюю приватную репу (bitbucket/giltab в помощь).
2) Защита
Также следует изучить структуру CMS и явно запретить исполнение php в тех директориях в которых скрипты быть не должны (всякие assets и upload). Сделать это можно в .htaccess и для надежности запретить его перезапись через chattr.
Настоятельно рекомендую включить директиву mail.log и писать лог отправки писем. В случае старта волны спама можно будет легко отследить откуда шлются письма.
Закрыть вход в админку дополнительно через BasicAuth или вовсе ограничить списком разрешенных ip.
Выключить ненужные штуки типа xmlrpc.php у Wordpress.
Сменить пароли в CMS, сменить пароли на FTP/SSH (кто знает, может пароли утекли будучи сохраненными в ftp-клиенте админа)
Поделюсь тогда и своей байкой =)
В 2003 году с появлением модемного интернета и компьютера я начала все это дело очень активно изучать (с постоянной переустановкой винды конечно же). И тогда же начал читать подшивки журнала Хакер в виде 200-300 кб html-архивов. Журналы тогда стоили дорого и не в каждом киоске их можно было купить. Поэтому я прочитал большую часть выпусков без картинок =)
И вот там то часто упоминался Linux. Естественно мне захотелось его попробовать. Но где в 2003 году в Ульяновске найти диск с дистрибутивом линукса мне было непонятно.
Выручил одноклассник который взял дистр у своего брата. Это был Red Hat 8.0 на 3-х дисках.
Уже тогда я поразился красоте и подробности установщика Anaconda. Залип с установкой часа на 3. Итог предсказуем — в линуксе не было интересных игрулей, не заработал мой PCI модем ZyXeL и вообще я мало понимал чем мне может пригодиться линукс именно сейчас. В итоге я его снес и установил обратно Win98, но впечатления о линуксе уже остались хорошие =)
Через год в прокате дисков я увидел диск с Knoppix. Несмотря на то что это был Live-CD я его поставил на комп второй системой и бодро боролся с его глюками. Даже каким-то волшебным образом удалось собрать из исходников драйвер на win-модем и выйти в интернет с Линукса! =) Правда связь постоянно отваливалась, но это было уже что-то.
Ну а дальше уже пошли бесплатные диски с Убунту (с 4.10 если не изменяет память), а в 2006 с появлением провайдера с локальной сетью я перешел на ASP Linux 11. Гордо держал на нем веб-сервер и ftp (на самом деле никому не нужные) и разбирался с системой. К слову сказать 12 версия данного дистрибутива мне не понравилась, а вот одиннадцатая оставила только положительные впечатления.
Потом был перерыв с виндой.
А потом с 2011 по 2017 Linux использовался как постоянная рабочая система примерно в такой исторической последовательности Ubuntu, Lubuntu, Xubuntu, Fedora, Manjaro, Fedora, Xubuntu с редкими уходами на другие дистры.
Ну а сейчас macOS Sierra xD
Сам когда то тоже любил обвешать шелл кучей плагинов, но в итоге забывал пользоваться доброй половиной из них, а подтупливающий терминал начинал раздражать. Вернулся к bash с кучкой алиасов и git-prompt.sh
Ну и теперь вот fzf добавился.
Для разработки под Windows еще есть неплохой вариант — http://box.scotch.io/
Для себя проблему решил сборкой нескольких контейнеров с LAMP и парой bash-скриптов для старта. В итоге получается что для старта нового проекта нужно просто скопировать директорию вида default-php-5.x и внутри в www положить проект, в db положить базу. Конфиги также линкуются bash-скриптом при старте сервера.
А вообще с docker-compose можно еще веселее конфигурацию замутить.