x

Основні розділи

  1. LimeSurvey Cloud проти LimeSurvey CE
  2. Короткий посібник із початку роботи - LimeSurvey 3.0+
  3. Встановлення - LimeSurvey CE
  4. Як створити хороше опитування (посібник)
  5. Початок роботи
  6. Адміністрування LimeSurvey
  7. Опитування - вступ
  8. Налаштування опитування
  9. Меню опитування
  10. Структура опитування
  11. Питання - вступ
  12. Групи питань - вступ
  13. Опитування - керування
  14. Параметри панелі інструментів опитування
  15. Багатомовне опитування
  16. ExpressionScript Engine - Короткий посібник
  17. Некатегоризовані та розширені функції
  18. Загальні поширені запитання
  19. Усунення несправностей
  20. Обхідні рішення
  21. Ліцензія
  22. Журнал змін версій
  23. Плагіни
 Actions

Рекомендації з безпеки під час встановлення

From LimeSurvey Manual

Ця сторінка, можливо, перекладена машинним способом і може містити помилки. Показати англійський оригінал · Покращити цей переклад
This page is a translated version of the page Installation security hints and the translation is 100% complete.

Загальні відомості

Зверніть увагу: ми дуже серйозно ставимося до питань безпеки та швидко реагуємо на них. Тому, якщо вам відомо про будь-які проблеми безпеки в LimeSurvey, повідомте нас, створивши звіт про помилку в нашому трекері помилок (будь ласка, позначте помилку як таку, що має серйозність або категорію «security»).

Докладніше про повідомлення про проблеми безпеки та вразливості читайте в нашій політиці безпеки.

Обмеження доступу на веб-сервері

Якщо ви використовуєте Apache, LimeSurvey містить різні файли htaccess для обмеження доступу. Переконайтеся, що ви дозволили використання цих файлів htaccess за допомогою AllowOverride.

З іншим веб-сервером або якщо ви хочете використовувати AllowOverride None, ви повинні:

  • (необов'язково) заборонити доступ до всіх файлів у application, protected, framework та themes/*/views
  • заборонити доступ до файлів, завантажених користувачем, у /upload/surveys/.*/fu_[a-z0-9]
  • (необов'язково) заборонити виконання виконуваних файлів у каталозі завантаження

Приклад конфігурації для nginx можна знайти в нашому розділі загальних запитань (FAQ)

Дозволи на файли в Linux

Якщо ви використовуєте сервер Linux, для захисту вашого встановлення LimeSurvey необхідно відповідним чином налаштувати дозволи на файли.

Основні відомості про дозволи на файли в Linux/*nix

Операційна система Linux/*nix є багатокористувацькою. Це означає, що, окрім вашого особистого облікового запису, у системі можуть існувати й інші облікові записи, тому слід уважно ставитися до того, які дозволи ви надаєте іншим користувачам.

Підказка: налаштування дозволів на файли особливо важливе для захисту конфігураційних файлів, що містять критичні дані, як-от паролі.

Пам'ятайте, що обліковий запис «root» завжди матиме дозвіл на доступ до ваших файлів (незалежно від встановлених дозволів), оскільки це суперадміністратор.

Веб-сервер (на якому працює LimeSurvey) також запущений від імені певного користувача. У Linux це зазвичай користувач «www», «www-data» (у Debian/Ubuntu), «apache» або «nobody». Однак деякі хостинг-компанії використовують системи (наприклад, suexec), які дають змогу запускати скрипти LimeSurvey від імені вашого особистого користувача. Звісно, користувач веб-сервера повинен мати право читати файли LimeSurvey. Проте лише невелика частина підкаталогів LimeSurvey має бути доступною для запису користувачу веб-сервера.

Підказка: дуже корисно відкликати дозвіл на запис для користувача веб-сервера в тих підкаталогах LimeSurvey, де він не потрібен. Адже навіть якщо буде виявлено вразливість LimeSurvey, основні файли залишатимуться захищеними від неправомірної зміни завдяки дозволам файлової системи.

Налаштування дозволів на файли в самостійно керованій системі Linux

Якщо ви самостійно керуєте конфігурацією веб-сервера та операційної системи (ви є власником фізичного сервера або орендуєте віртуальний сервер із доступом root), ви можете скористатися наведеними нижче рекомендаціями.

Спочатку можна встановити власника та групу файлів LimeSurvey, щоб полегшити налаштування дозволів на файли. Можлива стратегія: встановити власником файлів LimeSurvey ваше особисте ім'я користувача, а групою файлів LimeSurvey — групу веб-сервера. Зазвичай ця група веб-сервера містить лише обліковий запис веб-сервера (і, можливо, ще один обліковий запис веб-майстра). Наприклад, якщо ваше ім'я користувача — «myaccount», а користувач веб-сервера — «apache» у групі «apache», то в оболонці можна виконати таку команду: $ chown -R myaccount:apache limesurvey/. Після цього налаштуйте дозволи для файлів і підкаталогів.

Для коректної роботи скрипта потрібен доступ на запис до деяких каталогів:

  • Каталог /limesurvey/application/config потребує дозволу Читання та запис для збереження налаштувань конфігурації застосунку
  • Каталог /limesurvey/tmp та його підкаталоги використовуються для імпорту/завантаження і мають мати дозвіл Читання та запис для вашого веб-сервера
  • Каталог upload/ та всі його підкаталоги також повинні мати дозвіл Читання та запис, щоб можна було завантажувати зображення та медіафайли
  • Усі інші каталоги та файли можна встановити лише для читання (Read Only)

Налаштування дозволів на файли на хостинговому веб-сервері

Через складність стандартної процедури захисту вебзастосунку в хостинговому середовищі зробити це досить непросто, оскільки такі середовища відрізняються в багатьох аспектах.

У випадку керованого сервера для коректної роботи скрипта серверу потрібен доступ на запис до деяких каталогів:

  • Каталог /limesurvey/tmp використовується для імпорту/завантаження і має мати дозвіл Читання та запис для вашого веб-сервера
  • Каталог upload/ та всі його підкаталоги також повинні мати дозвіл Читання та запис для вашого веб-сервера, щоб можна було завантажувати зображення та медіафайли
  • Інші каталоги та файли слід встановити лише для читання (Read Only)
Підказка:
  • Залежно від конфігурації вашого веб-сервера, можливо, доведеться змінити права доступу (chmod) для папок, доступних для запису, на 755 або 777, щоб веб-сервер міг у них писати. Спочатку спробуйте 755, а якщо не спрацює — «підвищіть» до 777
  • Ви також можете спробувати прибрати доступ на читання config.php для інших користувачів, встановивши для цього файлу дозволи 750 — якщо не спрацює, «підвищіть» до 755

Дозволи на файли в Windows

Якщо ви використовуєте сервер Windows, переконайтеся, що папка admin дозволяє власнику процесу веб-сервера записувати файли в цей каталог. Решту файлів можна встановити лише для читання та виконання.

Інші питання безпеки

Наведені нижче поради є лише рекомендаціями. Загалом LimeSurvey дуже безпечний і без цих додаткових заходів. Проте якщо ви збираєте надзвичайно чутливі дані, трохи додаткового захисту не завадить:

Використання SSL

Зазвичай ми рекомендуємо використовувати SSL для чутливих даних опитувань. Зазвичай SSL вмикають, правильно налаштувавши веб-сервер і використовуючи SSL-сертифікат. Якщо ви ввімкнули SSL, слід постійно примусово використовувати SSL у загальних налаштуваннях LimeSurvey. Крім того, можна налаштувати використання лише «захищених» (secure) файлів cookie, змінивши відповідний параметр у config.php.

Доступ до файлу config.php

  Оновлюйте application/config/config.php лише після завершення першого встановлення, коли все працює.


Файл /application/config/config.php містить ім'я користувача та пароль до вашого сервера бази даних. Це створює певні проблеми з безпеки, особливо якщо ви використовуєте обліковий запис із високим рівнем адміністративного доступу до бази даних. Якщо внаслідок якоїсь помилки вміст цього PHP-файлу буде передано в браузер користувача, пароль до вашої бази даних та інші деталі можуть бути скомпрометовані (однак такий сценарій дуже малоймовірний). Найкращий спосіб мінімізувати ризик — створити окремий обліковий запис, який матиме спеціальні права лише на вашу базу даних LimeSurvey.

Інший спосіб захистити цю інформацію — перенести дані з файлу /application/config/config.php до каталогу, недоступного з вебу, тобто для користувачів Apache це каталог вище за папку htdocs (також відому як public_html або www). По суті, ви продовжуєте використовувати config.php, але залишаєте в ньому лише один рядок — рядок, який підключає файл зі СПРАВЖНЬОЮ інформацією про конфігурацію (наприклад: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Видаліть усю фактичну інформацію про конфігурацію з /application/config/config.php і вставте її в інший файл (configreal.php), згаданий у файлі /application/config/config.php. Цей інший файл має розташовуватися в каталозі, недоступному з вебу. Тоді /application/config/config.php не міститиме паролів до бази даних тощо — лише назву файлу, який МІСТИТЬ відомості про базу даних.

Це дає змогу не змінювати всі інші файли, що підключають /application/config/config.php, оскільки config.php «перенаправляє» їх до файлу конфігурації, який розташований у каталозі, недоступному з вебу, і містить усю справжню інформацію про конфігурацію.

Також не використовуйте "admin" або "administrator" як користувача за замовчуванням. Перейдіть до вашої бази даних MySQL (або тієї, в якій ви встановили LimeSurvey) і змініть ім'я користувача за замовчуванням "admin" на будь-яке, яке вам подобається (наприклад, "admin_xyz"). Тепер вгадати нове ім'я користувача адміністратора буде набагато складніше. Пам'ятайте, що це одна з двох змінних, які зловмисники можуть використати для отримання доступу. Пароль адміністратора — інша змінна. Тому обирайте обидві з надзвичайною обережністю.

Content Security Policy (CSP)

ЗАСТЕРЕЖЕННЯ — наведений тут CSP є лише прикладом і не призначений для використання без змін. Це лише відправна точка, і ви ПОВИННІ адаптувати його до своїх потреб та ретельно протестувати.

<IfModule mod_headers.c>
        Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; base-uri 'none'; form-action 'self'; frame-ancestors 'self'; upgrade-insecure-requests" "expr=%{CONTENT_TYPE} =~ m#text\/(html|javascript)|application\/pdf|xml#i"
</IfModule>