OJS 3: безопасность
Уважаемые коллеги!
В данном материале мы хотели бы рассказать о том, как обезопасить сайт на платформе OJS.
Мы уверены, что соблюдение основных мер безопасности, о которых мы постараемся рассказать ниже, может предотвратить, минимизировать или устранить последствия неблагоприятного воздействия на сайт Open Journal Systems 3 (например, неудачное обновление, проблемы с базой данных, проникновение ботов, хакерский взлом и пр.).
Предварительные важные замечания к материалу:
- соблюдение мер безопасности лишь минимизирует риски, но не защитит Ваш сайт на 100%;
- в материале Вы найдете далеко не исчерпывающий список мер безопасности, есть множество других;
- здесь мы рассматриваем самый простой список мер безопасности, которые доступны любому пользователю (настройки хостинга + готовые модули Open Journal Systems).
1. Логин и пароль к сайту OJS
Самый простой и доступный способ обезопасить свой сайт — подобрать подходящий логин и пароль от учетной записи Open Journal Systems. Приводим некоторые рекомендации ниже:
- Логин не должен быть простым типа admin или administrator.
- Логин не должен быть коротким и содержать только буквы типа journal или содержать только цифры 12345.
- Логин не должен быть простым, предсказуемым, дублировать домен сайта или почтовые ящики из контактов типа myjournalsite, svetlana2016 и пр.
- Пароль должен быть длинным (не меньше 20-30 символов) и содержать прописные буквы, строчные буквы, цифры и символы, например, kR^CnA#pew0&$qn%pY1*GZ%1Mxpl@r.
Такие пароли можно легко генерировать с помощью бесплатных онлайн сервисов, например, генератор паролей на сайте Хостинг-Украина. Но даже после получения такого пароля в сервисе мы все равно рекомендуем изменить в нем несколько символов. Также не рекомендуется хранить пароли в браузере.
Изменить старый пароль в OJS можно так:
Users & Roles >>> Users. Находим нужную учетную запись, нажимаем стрелку и далее Edit User…
В настройках пользователя будет поле Password, которое можно изменить.
Чтобы заставить других пользователей при регистрации на сайте использовать более сложные пароли, рекомендуем установить модуль Better Password
Для этого идем: Settings >>> Website >>> Plugins >>> Plugin Gallery. Находим и устанавливаем модуль Better Password.
Скачать модуль Better Password на GitHub
После установки модуля возвращаемся Settings >>> Website >>> Plugins, ставим галочку — активируем, далее стрелку рядом с названием и Settings.
В настройках модуля можно выставить минимальную длину пароля, обязательное использование букв, цифр, специальных символов, а также количество неудачных попыток авторизации перед блокировкой аккаунта (см. скрин ниже).
2. Протокол HTTPS + SSL
Протокол HTTPS защищает передаваемые пользователями сайта данные от перехвата злоумышленниками путем шифрования. Особенно актуален протокол HTTPS на сайтах, которые для доступа к определенному контенту или сервисам запрашивают личные данные пользователей. Немаловажно и то, что многие поисковые системы (в том числе Google) при ранжировании результатов поисковой выдачи отдают предпочтение сайтам, использующим протокол HTTPS, что немаловажно для привлечения пользователей именно из поисковиков. Одним словом, если у Вас есть возможность использовать такой протокол, нужно использовать.
Всем коллегам, которые хотят самостоятельно создать и успешно поддерживать сайт научного журнала на платформе Open Journal Systems, мы рекомендуем воспользоваться услугами авторитетной и надежной компании «Хостинг Украина». Ниже приводим инструкцию по настройке протокола HTTPS именно на основе интерфейса этой хостинг-компании. Если Вы пользуетесь другим хостингом, то Вам следует запросить у техподдержки наличие такой опции + инструкции по реализации. Обычно все это предоставляется.
Итак, идем… Хостинг >>> Мои сайты
Выбираем в списке нужный сайт, например medicine.dp.ua и нажимаем «Настройка SSL».
Далее в окне получения бесплатного Let’s Encrypt сертификата нажимаем «Установить».
Через некоторое время (от 10 минут до 24 часов) на этой же странице появится возможность переадресации всех запросов с обычного протокола http на зашифрованный протокол https
Ставим соответствующую галочку «Переадресовывать запросы с http на https».
Изменения вступят в силу в течение 10 минут. После этого Вы увидите в окне браузера рядом с доменным именем изображение «закрытого замка». Это будет указывать на использование протокола https.
Если кликнуть на изображение «замка», то можно получить более детальную информацию.
Зеленая надпись «Безопасное подключение» свидетельствует о том, что все в порядке.
3. Защита от ботов средствами хостинга (CAPTCHA)
Наибольший вред сайтам на платформе OJS наносят интернет-боты — программы, которые автоматически регистрируются на сайте под видом обычных пользователей, а затем вместо материалов рукописи посылают файлы с вредоносным кодом, с помощью которого можно взломать сайт.
Есть несколько стандартных методов борьбы с ботами. Один из них называется CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) — автоматизированный тест для различения компьютеров и людей).
Рекомендуем материал по ручной настройке CAPTCHA в OJS, а также настройке CAPTCHA для второй версии платформы OJS: captcha и борьба с интернет-ботами.
Ниже мы приведем аналогичную процедуру средствами хостинга. идем… Хостинг >>> Мои сайты, выбираем нужный сайт и нажимаем кнопку «Защита от ботов».
Далее вычисляем, на какие страницы нужно поставить защиту с учетом URL Вашего журнала.
Например, журнал на сайте имеет путь med (Ваш журнал может иметь другой путь…)
https://medicine.dp.ua/index.php/med
Нажимаем кнопку «Установить защиту на страницы»…
и добавляем часть пути для страниц регистрации и авторизации (register и login). В результате будет 4 строчки такого содержания…
/index.php/med/login /index.php/med/user/register /index.php/med/user/register?source= /index.php/med/login?source=
Значение med Вам нужно заменить на путь своего журнала. Добавить строчки в поле «Список страниц», выбрать тип защиты CAPTCHA и сохранить (см. скрин ниже).
Полученный результат…
Если все сделано правильно, то на странице авторизации или регистрации появится всем хорошо известная дополнительная защита CAPTCHA от Google.
4. Ручная проверка списка пользователей в OJS
Даже если у Вас стоит защита от ботов, но включена возможность регистрации на сайте, мы настоятельно рекомендуем регулярно (1-4 раза в месяц) проверять список всех пользователей, которые зарегистрировались в OJS на предмет наличия интернет-ботов.
Делается это очень просто. Нужно авторизироваться в OJS и перейти в раздел Users & Roles >>> Users или Користувачі і ролі >>> Користувачі
И тщательно просмотреть всех пользователей…
Как правило, боты регистрируются под иностранными именами и фамилиями, которые были сформированы автоматически или взяты из базы реальных людей, пользователей Интернета (социальные сети и пр. сервисы), не имеющих к Вашему журналу никакого отношения. Боты используют не характерные для Вашего региона почтовые сервисы типа hotmail или yahoo. Имена и фамилии, а также логины ботов часто могут совпадать. Бог может быть неактивен долгое время. Он не подает рукопись на рассмотрение, не выходит на связь с редакцией, не входит в число знакомых Вам членов научного сообщества.
Каждый модератор сайта интуитивно может определить не менее 90% ботов среди зарегистрировавшихся пользователей. Но сохраняется вероятность того, что это могут быть Ваши иностранные коллеги. Если у Вас есть сомнения, Вы можете или попытаться связаться с пользователем через оставленную почту, или осуществить поиск фамилии имени в Google или Research Gate, или временно деактивировать пользователя, нажав Disable. Для полного удаления пользователя нужно нажать стрелку рядом с его именем и Remove.
Если Вы не используете платформу Open Journal Systems как инструмент приема и рецензирования рукописей online, то опцию регистрации новых пользователей на сайте можно отключить совсем. Это делается так:
Users & Roles >>> Site Access Options
Далее выбирается опция «менеджер журнала регистрирует всех пользователей…»… (см.скрины ниже).
украинский интерфейс…
После активации этой опции на сайте будет отключена возможность регистрации.
5. Модуль Form Honeypot
Если Вы все же не хотите отказываться от регистрации пользователей на сайте, то рекомендуем воспользоваться модулем OJS Form Honeypot.
Модуль можно использовать для блокировки регистраций, которые занимают подозрительно мало времени или очень много времени. Т.е. имеются две настройки: минимальное и максимальное время. Пользователи, посещающие страницу регистрации, должны заполнить регистрационную форму между минимальным и максимальным временем, иначе форма будет отклонена. Установка обоих значений на ноль отключает эту функцию. Вторая особенность заключается в том, что модуль добавляет и скрывает поле со случайно сгенерированным именем на странице регистрации. У скриптов и ботов, которые заполняют это поле и отправляют форму, попытки регистрации будут отклонены.
Скачать модуль Form Honeypot на GitHub
Установка традиционно из галереи модулей…
Включение модуля тоже традиционное…
Настройка модуля…
Вам только нужно определить минимальное и максимальное количество секунд, которое может потратить обычный человек на заполнение регистрационной форме на сайте.
6. Уведомление о новых пользователях
С помощью модуля Registration Notification администраторы сайта могут получать уведомления на электронную почту о регистрации новых пользователей на сайте OJS.
Скачать модуль Registration Notification на GitHub.
Установка модуля из галереи…
активация…
Достаточно просто ввести один или несколько email для рассылки уведомлений о регистрации новых пользователей и сохранить — OK.
Настроив эту функцию, Вам можно не беспокоиться о новых пользователях и реже проверять их список, а также быть в курсе, кто и когда из потенциальных авторов статей зарегистрировался на сайте.
7. Антиспам от Akismet
Akismet — это широко известная универсальная служба фильтрации спама в комментариях, сообщениях контактной формы и пр. элементах сайта. Akismet известен прежде всего пользователям популярной CMS WordPress, но, важно отметить, что этот модуль есть и в Open Journal Systems.
Скачать модуль Akismet на GitHub.
Установить модуль можно из галереи…
Активация и настройка…
В настройках нужно перейти по ссылке на официальный сайт Akismet, зарегистрироваться и получить специальный ключ API Key, который затем ввести здесь же в настройках модуля.
Процедура получения ключа несложная, бесплатная и занимает всего несколько минут.
8. Резервное копирование
Уважаемые коллеги, одной из самых важных мер безопасности для Вашего сайта является регулярное создание и хранение резервных копий сайта (файлы системы) и базы данных (MySql).
Все резервные копии сайта можно сделать прямо из административной панели OJS, предварительно установив и настроив модуль Backup.
Подробно об этом см. в материале OJS 3: резервное копирование.
Здесь мы остановимся на доступных средствах Хостинг-Украина (важно отметить, что опция создания резервных копий должна быть на каждом хостинге).
Идем Аккаунт >>> Резервное копирование
Нажимаем кнопку Заказать резервную копию
Выбираем из списка вначале базу данных, затем сайт (только файлы без базы).
Далее выбираем сайт, например, medicine.dp.ua, дату резервной копии (текущая или за определенное число). И нажимаем Создать.
После создания резервной копии ее нужно скачать на ПК.
Интерфейс создания резервных копий на Вашем хостинге может отличаться.
Таким образом, Вы минимизируете риск потери данных в непредвиденных ситуациях…
9. Антивирус на хостинге
Многие хостинг-компании предоставляют услуги антивирусной проверки сайтов. Следует уточнить насчет этой услуги у Вашей техподдержки. Хостинг-Украина реализует проверку следующим способом
Хостинг >>> Аккаунт >>> Антивирусная защита
Все предельно просто. Нужно нажать кнопку «Выполнить проверку файлов аккаунта».
Если антивирус не обнаружит файлы, Вы будете оповещены на этой же странице. Если антивирус обнаружит вредоносные файлы, то Вам на email придет сообщение с точным указанием полного списка зараженных файлов и директорий, в которых они размещаются.
10. Модуль Allowed Uploads
Модуль Allowed Uploads позволяет вручную выбирать типы файлов (расширения файлов), которые пользователи могут прикреплять к рукописям и отправлять на сервер. Подобная опция позволяет предотвратить выгрузку вредоносных файлов. Например, Вы можете разрешить наиболее используемые и наименее вредные типы файлов *.doc или *.pdf, но запретить более опасные и никогда не используемые типы *.phtml.
Если модуль недоступен из общей галереи модулей, то его можно скачать отдельным архивом.
Скачать модуль Allowed Uploads на GitHub.
Для скачивания нужно нажать Clone or download, а затем Download ZIP.
Далее нужно распаковать архив и изменить название директории модуля с «allowedUploads-master» на «allowedUploads». Установить модуль можно двумя способами. Директорию с файлами выгрузить вручную в директорию plugins/generic/ , чтобы получилось так: .plugins/generic/allowedUploads или установить модуль из административной панели OJS, если нет доступа на сервер.
Чтобы установить модуль из административной панели OJS, нужно добавить всю папку allowedUploads (не отдельные файлы) с помощью архиватора 7-Zip в архив tar, чтобы получилось так: allowedUploads.tar (см. скрины ниже):
В программе выбираем формат архива tar и сохраняем.
Далее полученный архив allowedUploads.tar сохраняем еще раз в той же программе, но уже в формате gzip, чтобы получить файл allowedUploads.tar.gz (см. скрины ниже):
… выбираем gzip
В результате у Вас должен получиться файл allowedUploads.tar.gz, в котором должна лежать папка allowedUploads, а в этой папке файлы модуля.
После этого возвращаемся в админ.панель OJS: Settings >>> Website >>> Plugins
и нажимаем Upload a New Plugin
Выбираем файл allowedUploads.tar.gz с ПК и нажимаем Save.
Если все сделано правильно, Вы увидите такое сообщение в верхнем правом углу экрана.
Далее модуль нужно активировать и нажать Settings, чтобы настроить…
В настройках модуля нужно ввести расширения допустимых для загрузки файлов, например
doc; docx; pdf; gif; jpg
и сохранить — ok.
При этом все остальные расширения файлов будут блокироваться и пользователи сайта получат соответствующее уведомление.
Модуль не позволил загрузить файл *.html — все работает.
11. Директория для файлов вне сайта
В качестве дополнительной меры безопасности Вы можете вынести директорию для выгрузки файлов пользователей OJS из корня сайта (www) или (public_html), где размещаются все остальные папки и файлы системы. Обычно полный путь к такой директории указывается при установке OJS. При этом каталог не обязательно должен быть доступен напрямую через Интернет. Вы можете заранее создать отдельную директорию и вписать альтернативный путь к файлам (в отличие от того, который предложен, например, на скрине ниже).
Т.е. если Ваш сайт находится в директории mysite.com, то директорию files (для пользовательских файлов) следует вынести за пределы mysite.com.
Если Вы уже создали директорию для выгрузки файлов в корне сайта и установили OJS, это не проблема. В любой момент можно вынести директорию и сделать соответствующие изменения в главном конфигурационном файле config.inc.php (лежит в корне сайта).
Т.о. злоумышленникам или ботам будет затруднительно получить доступ к основным файлам OJS с помощью вредоносного пользовательского файла, выгруженного в качестве «рукописи» через стандартные формы системы.
Уважаемые коллеги, мы перечислили далеко не полный список мер безопасности при работе с OJS. Если у Вас есть другие наработки, пожалуйста, делитесь с остальными, оставляйте комментарии в этой теме. Надеемся, что материал был полезен. С уважением. Участники проекта OSU.
Теги: OJS, Open Journal Systems, безопасность
Дата публикации материала: 15.02.2020
Трекбэк с Вашего сайта.
Поделиться: