Actions

Installation security hints/pl: Difference between revisions

From LimeSurvey Manual

(Created page with "Próbkę dla nginx można znaleźć w naszym Ogólne pytania")
(Created page with "'''ZASTRZEŻENIE — Podany tutaj CSP jest jedynie przykładem i nie należy go używać dosłownie. Jest to punkt wyjścia i MUSISZ dostosować go do swoich potrzeb i dokład...")
 
(33 intermediate revisions by the same user not shown)
Line 18: Line 18:
Próbkę dla nginx można znaleźć w naszym [[General_FAQ#With_nginx_webserver|Ogólne pytania]]
Próbkę dla nginx można znaleźć w naszym [[General_FAQ#With_nginx_webserver|Ogólne pytania]]


==Linux file permissions==
==Uprawnienia do plików w systemie Linux==


If you are using a Linux server, setting file permissions accordingly is required to secure your LimeSurey installation.
Jeśli korzystasz z serwera Linux, wymagane jest odpowiednie ustawienie uprawnień do plików, aby zabezpieczyć instalację LimeSurey.


===Basic facts about Linux/*nix file permissions===
===Podstawowe fakty na temat uprawnień do plików Linux/*nix===


A Linux/*nix operating system is multi-user. This means that, apart from your personal account, other user accounts may exist on the system and you should take care of what permissions you give to other users.
System operacyjny Linux/*nix obsługuje wielu użytkowników. Oznacza to, że poza Twoim kontem osobistym w systemie mogą istnieć inne konta użytkowników i powinieneś zadbać o to, jakie uprawnienia nadajesz innym użytkownikom.


<div class="simplebox">[[File:help.png]] '''Hint:''' setting file permissions is especially important in order to secure configuration files holding critical data such as passwords.</div>
<div class="simplebox">[[File:help.png]] '''Wskazówka:''' ustawienie uprawnień do plików jest szczególnie ważne w celu zabezpieczenia plików konfiguracyjnych zawierających krytyczne dane, takie jak hasła.</div>


'''Bear in mind that the 'root' account will always be granted permission to access your files (no matter what file permissions you set) as it is the super-admin user.'''
'''Pamiętaj, że konto „root” zawsze otrzyma pozwolenie na dostęp do Twoich plików (bez względu na to, jakie uprawnienia do plików ustawisz), ponieważ jest to użytkownik superadministrator.'''


The web server (which runs LimeSurvey) is also running under a given identity (user). On Linux, this is usually the 'www', 'www-data' (on Debian/Ubuntu), 'apache' or 'nobody' user. However, some hosting companies use systems (such as suexec) that make it possible to run LimeSurvey scripts with your personal user. Of course, the web server user must have the right to read LimeSurvey files. However, only a small subset of LimeSurvey sub-directories must be writable by the web server user.
Serwer WWW (na którym działa LimeSurvey) również działa pod daną tożsamością (użytkownikiem). W systemie Linux jest to zwykle użytkownik „www”, „www-data” (w Debianie/Ubuntu), „apache” lub „nobody”. Jednak niektóre firmy hostingowe korzystają z systemów (takich jak suexec), które umożliwiają uruchamianie skryptów LimeSurvey z Twoim osobistym użytkownikiem. Oczywiście użytkownik serwera WWW musi mieć uprawnienia do odczytu plików LimeSurvey. Jednak tylko niewielki podzbiór podkatalogów LimeSurvey musi być możliwy do zapisu przez użytkownika serwera WWW.


<div class="simplebox">[[File:help.png]] '''Hint''': it is very valuable to revoke write permission for the web server user to these LimeSurvey sub-directories that do not require it. Indeed, even if a LimeSurvey vulnerability might be discovered, the main files will still be protected from an illicit modification thanks to the file system permissions.</div>
<div class="simplebox">[[File:help.png]] '''Wskazówka'': bardzo cenne jest odebranie użytkownikowi serwera WWW uprawnień do zapisu w tych podkatalogach LimeSurvey, które tego nie wymagają. Rzeczywiście, nawet jeśli zostanie wykryta luka w LimeSurvey, główne pliki będą nadal chronione przed nielegalną modyfikacją dzięki uprawnieniom systemu plików.</div>


===Setting file permissions on a self-managed Linux system===
===Ustawianie uprawnień do plików w samodzielnie zarządzanym systemie Linux===


If you're managing your web server and operating system configuration (you are the owner of the physical server or are renting a virtual server on which you have root access), you may consider the following recommendations from below.
Jeśli zarządzasz konfiguracją swojego serwera WWW i systemu operacyjnego (jesteś właścicielem serwera fizycznego lub wynajmujesz serwer wirtualny, na którym masz dostęp do roota), możesz rozważyć poniższe zalecenia.


You can first set the owner and group of your LimeSurvey files so that it will ease the file permissions setup. A possible strategy is to set the owner of the LimeSurvey files to your personal username, and the group of the LimeSurvey files to the web server group. Usually, this web server group only contains the web server account (and possibly another webmaster account). For instance, if your username is 'myaccount' and the webserver user is 'apache' in the 'apache' group, then, from a shell access, you can use the following command: <code>$ chown -R myaccount:apache limesurvey/</code>. Subsequently, set the file and sub-directories permissions.
Możesz najpierw ustawić właściciela i grupę plików LimeSurvey, co ułatwi konfigurację uprawnień do plików. Możliwą strategią jest ustawienie właściciela plików LimeSurvey na swoją osobistą nazwę użytkownika, a grupy plików LimeSurvey na grupę serwera WWW. Zwykle ta grupa serwerów WWW zawiera tylko konto serwera WWW (i ewentualnie inne konto webmastera). Na przykład, jeśli Twoja nazwa użytkownika to „moje konto”, a użytkownikiem serwera WWW jest „Apache” w grupie „Apache”, wówczas z poziomu powłoki możesz użyć następującego polecenia: <code>$ chown -R myaccount:apache limesurvey/</code> . Następnie ustaw uprawnienia do plików i podkatalogów.


For the script to work properly, the write access to some directories is needed:
Aby skrypt działał poprawnie, potrzebne są uprawnienia do zapisu w niektórych katalogach:
*The /limesurvey/application/config directory requires ''Read & Write'' for saving the application configuration settings
*Katalog /limesurvey/application/config wymaga opcji „Odczyt i zapis” w celu zapisania ustawień konfiguracyjnych aplikacji
*The /limesurvey/tmp directory and its sub-directories are used for imports/uploads and should be set to ''Read & Write'' for your web server
*Katalog /limesurvey/ Katalog tmp i jego podkatalogi są używane do importowania/przesyłania i powinny być ustawione na „Odczyt i zapis” dla Twojego serwera WWW
*The upload/directory and all its sub-directories must also have set ''Read & Write'' permissions in order to enable pictures and media files upload
*Katalog/przesyłania i wszystkie jego podkatalogi muszą mieć także ustawioną opcję „Odczyt” & Zapis”, aby umożliwić przesyłanie zdjęć i plików multimedialnych
* All other directories and files can be set to ''Read Only''
* Wszystkie pozostałe katalogi i pliki można ustawić jako „Tylko do odczytu”


<div class="simplebox">[[File:help.png]] '''Hint:''' supposing you've followed the recommendations above on owner/group, these settings can be applied by the following commands:
<div class="simplebox">[[File:help.png]] '''Wskazówka:''' zakładając, że zastosowałeś się do powyższych zaleceń dotyczących właściciela/grupy, ustawienia te można zastosować za pomocą następujących poleceń:


<code>$ chmod -R o-r-w-x limesurvey/</code>
<code>$ chmod -R o-r-w-x limesurvey/</code>
Line 60: Line 60:
</div>
</div>


===Setting file permissions on a hosted web server===
===Ustawianie uprawnień do plików na hostowanym serwerze internetowym===


Giving the difficulty of a standard procedure to secure a web application on a hosted environment, it is rather difficult because hosted environments differ in many ways.
Biorąc pod uwagę trudność standardowej procedury zabezpieczania aplikacji internetowej w środowisku hostowanym, jest to raczej trudne, ponieważ środowiska hostowane różnią się pod wieloma względami.


In the managed server case, the server needs write access to some directories in order for the script to work properly:
W przypadku serwera zarządzanego serwer potrzebuje dostępu do zapisu w niektórych katalogach, aby skrypt działał poprawnie:
*The /limesurvey/tmp directory is used for imports/uploads and should be set to ''Read & Write'' for your web server
*Katalog /limesurvey/tmp jest używany do importowania/przesyłania i powinien być ustawiony na „Odczyt i zapis” ' dla Twojego serwera WWW
*The upload/directory and all its sub-directories must also have ''Read & Write'' for your web server in order to enable pictures and media files upload
*Katalog przesyłania/i wszystkie jego podkatalogi muszą także mieć opcję „Odczyt i zapis” dla Twojego serwera WWW, aby umożliwić przesyłanie zdjęć i plików multimedialnych
* The other directories and files should be set to ''Read Only''
* Pozostałe katalogi i pliki powinny być ustawione na „Tylko do odczytu”


<div class="simplebox">[[File:help.png]] '''Hint:'''
<div class="simplebox">[[File:help.png]] '''Wskazówka:'''
* Depending on your web server configuration, you will have to chmod the rights on the writable folders to 755 or 777 to make it writable for the web server. Try 755 first, if it does not work, 'upgrade' to 777
* W zależności od konfiguracji serwera WWW, będziesz musiał zmienić uprawnienia do zapisywalnych folderów na 755 lub 777, aby umożliwić zapis dla Internetu serwer. Spróbuj najpierw 755, jeśli to nie zadziała, „uaktualnij” do 777
* You can also try to remove other users' read access to config.php by setting this file's permissions to 750 - if it does not work, 'upgrade' to 755</div>
* Możesz także spróbować usunąć dostęp innych użytkowników do odczytu config.php, ustawiając uprawnienia tego pliku na 750 - jeśli to nie zadziała, „uaktualnij” „do 755</div>


==Windows file permissions==
==Uprawnienia do plików systemu Windows==


If you are using a Windows server, your should ensure that the admin folder allows the owner of the web server process to write files to this directory, The rest of the files can be set to read-only and execute.
Jeśli używasz serwera Windows, powinieneś upewnić się, że folder admin umożliwia właścicielowi procesu serwera WWW zapisywanie plików w tym katalogu. Pozostałe pliki można ustawić jako tylko do odczytu i wykonywać.


==Other security issues==
==Inne problemy bezpieczeństwa==


The following are recommendations only. LimeSurvey in general is very safe without these additional measures. If you however collect extremely sensitive data, a little additional security can help:
Poniżej znajdują się jedynie zalecenia. Ogólnie rzecz biorąc, LimeSurvey jest bardzo bezpieczny bez tych dodatkowych środków. Jeśli jednak zbierasz wyjątkowo wrażliwe dane, pomocne może być dodatkowe zabezpieczenie:


===SSL usage===
===Użycie protokołu SSL===
We generally recommend the usage of SSL for sensitive survey data. You usually enable SSL by configuring your web server correctly and using a SSQL certificate. If you have enabled SSL, you should enforce SSL all the time from the [[Global_settings|global settings]] of LimeSurvey. Additionally, you could only set to use 'secure' cookies by editing the [[Optional_settings|respective option]] in config.php.
Generalnie zalecamy korzystanie z protokołu SSL w przypadku wrażliwych danych ankietowych. Zwykle włączasz SSL, poprawnie konfigurując serwer WWW i używając certyfikatu SSQL. Jeśli włączyłeś SSL, powinieneś cały czas wymuszać SSL w [[Global_settings|ustawienia globalne]] LimeSurvey. Dodatkowo, możesz ustawić używanie „bezpiecznych” plików cookie jedynie poprzez edycję [[Optional_settings|odpowiednia opcja]] w config.php.


=== The access to the config.php file ===
=== Dostęp do pliku config.php ===


{{Alert| You must update application/config/'''config.php''' only after the first installation is done and it works.}}  
{{Alarm| Musisz zaktualizować aplikację/config/'''config.php''' dopiero po przeprowadzeniu pierwszej instalacji i zadziałaniu.}}  


The /application/config/config.php file contains a user name and password for your database server. This poses certain security issues, particularly if you are using a login that has high level administrative access to your database. In the event of some error returning the content of this PHP file to a user's browser, your database password and other details could be compromised (however, this is a very unlikely scenario). The best way to minimize risk is to set up a specific login that has specific rights only to your LimeSurvey database.
Plik /application/config/config.php zawiera nazwę użytkownika i hasło do serwera bazy danych. Stwarza to pewne problemy związane z bezpieczeństwem, szczególnie jeśli używasz loginu, który ma dostęp administracyjny na wysokim poziomie do Twojej bazy danych. W przypadku wystąpienia błędu podczas zwracania zawartości tego pliku PHP do przeglądarki użytkownika, hasło do bazy danych i inne szczegóły mogą zostać naruszone (jest to jednak bardzo mało prawdopodobny scenariusz). Najlepszym sposobem na zminimalizowanie ryzyka jest ustawienie specjalnego loginu, który ma określone uprawnienia tylko do Twojej bazy danych LimeSurvey.


Another way to secure this information can be to put the information from the /application/config/config.php file in a non-web directory, i.e. for Apache users this is the directory above the htdocs (also known as public_html or www) folder. Basically, you will use config.php, but have one line in it - a line that includes the file with ACTUAL configuration information (ex: <code><?php return include("/home/hostfolder/safedata/configreal.php"); ?></code>). Remove all actual configuration information from /application/config/config.php and paste it into the other file (configreal.php) that is mentioned in the /application/config/'''config.php''' file. This other file should be located in a non-web directory. Then, /application/config/config.php will not contain database passwords etc. - just the name of the file that '''DOES''' contain the database info.  
Innym sposobem zabezpieczenia tych informacji może być umieszczenie informacji z pliku /application/config/config.php w katalogu innym niż internetowy, tj. dla użytkowników Apache jest to katalog znajdujący się nad folderem htdocs (znanym również jako public_html lub www) . Zasadniczo użyjesz pliku config.php, ale będziesz miał w nim jedną linię - linię zawierającą plik z RZECZYWISTYMI informacjami konfiguracyjnymi (np.:<?php return include("/home/hostfolder/safedata/configreal.php"); ?> ). Usuń wszystkie aktualne informacje konfiguracyjne z /application/config/config.php i wklej je do innego pliku (configreal.php), który jest wymieniony w pliku /application/config/'''config.php'''. Ten inny plik powinien znajdować się w katalogu innym niż internetowy. Wtedy /application/config/config.php nie będzie zawierał haseł do baz danych itp. - tylko nazwę pliku, który '''''''''''' zawiera informacje o bazie danych.  


This avoids having to change all the other files that include /application/config/config.php, since config.php 're-directs them' towards the configuration file that is located in a non-web directory which includes all the real configuration information. However, you will need to edit configreal.php and change the follow parameters to use absolute directory paths to work properly:
Pozwala to uniknąć konieczności zmiany wszystkich innych plików, które zawierają /application/config/config.php, ponieważ config.php „przekierowuje je” do pliku konfiguracyjnego znajdującego się w katalogu innym niż internetowy, który zawiera wszystkie rzeczywiste informacje konfiguracyjne . Będziesz jednak musiał edytować plik configreal.php i zmienić następujące parametry, aby używać bezwzględnych ścieżek katalogów do prawidłowego działania:


<syntaxhighlight lang="php">
<syntaxhighlight lang="php">


'basePath' => dirname(dirname('''FILE''')),
'basePath' => nazwakatalogu(nazwakatalogu('''PLIK'')),
'runtimePath' => dirname(dirname(dirname('''FILE'''))).DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR.'runtime',
'runtimePath' => nazwakatalogu(nazwakatalogu(nazwakatalogu('''PLIK''))).DIRECTORY_SEPARATOR.'tmp'. DIRECTORY_SEPARATOR.'runtime',
[...]
[...]


'urlManager' => array(
'urlManager' => array(
   [...]
[...]
   'rules' => require('routes.php'),
'rules' => require('routes.php'),
   [...]
[...]
);
);
</syntaxhighlight>
</syntaxhighlight>


Example:
Przykład:


<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
Line 115: Line 115:


'urlManager' => array(
'urlManager' => array(
   [...]
[...]
   'rules' => require('/var/www/htdocs/limesurvey/config/routes.php'),
'rules' => require('/var/www/htdocs/limesurvey/config/routes.php'),
   [...]
[... ]
);
);
</syntaxhighlight>
</syntaxhighlight>


Also, '''don't use "admin" as the default user'''. Go to your MySQL database (or the one in which you installed LimeSurvey) and change default user name "admin" to whatever you prefer (e.g. "admin_xyz"). It will now be much harder to guess the administrator's new user name. Remember, this is one of the two variables intruders can use to gain access. The admin password is the other variable. So choose both of them with extreme caution.
Ponadto „nie używaj „admin” jako domyślnego użytkownika”. Przejdź do swojej bazy danych MySQL (lub tej, w której zainstalowałeś LimeSurvey) i zmień domyślną nazwę użytkownika „admin” na dowolną (np. „admin_xyz”). Odgadnięcie nowej nazwy użytkownika administratora będzie teraz znacznie trudniejsze. Pamiętaj, że jest to jedna z dwóch zmiennych, których intruzi mogą użyć, aby uzyskać dostęp. Hasło administratora to druga zmienna. Dlatego wybieraj oba z dużą ostrożnością.




=== Content Security Policy (CSP) ===
=== Polityka bezpieczeństwa treści (CSP) ===


'''DISCLAIMER - The CSP provided here is an example only and is not meant to used verbatim. It is meant as a starting point and you MUST adapt it to your needs and test it thoroughly.'''
'''ZASTRZEŻENIE — Podany tutaj CSP jest jedynie przykładem i nie należy go używać dosłownie. Jest to punkt wyjścia i MUSISZ dostosować go do swoich potrzeb i dokładnie przetestować.'''
<nowiki><IfModule mod_headers.c>
<nowiki><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"
Nagłówek zawsze ustawiony na Politykę bezpieczeństwa treści „default-src „self”; script-src „self” „unsafe-inline” „unsafe-eval”; style-src „self” „unsafe-inline”; base-uri „none” '; form-action 'self'; przodkowie ramek 'self'; upgrade-insecure-requests" "expr=%{CONTENT_TYPE} =~ m#text\/(html|javascript)|application\/pdf|xml#i "
</IfModule></nowiki>
</IfModule></nowiki>

Latest revision as of 07:51, 15 September 2023

Ogólne

LimeSurvey opiera się na własnych zabezpieczeniach, które są domyślnie aktywowane. Autorzy tego oprogramowania nie ponoszą żadnej odpowiedzialności i nie zgłaszają żadnych roszczeń dotyczących stosowności lub poziomu bezpieczeństwa tego oprogramowania. Jednakże kwestie bezpieczeństwa traktujemy bardzo poważnie i szybko reagujemy. Dlatego jeśli wiesz o jakichkolwiek problemach związanych z bezpieczeństwem w LimeSurvey, daj nam znać, wysyłając e-mail na adres info@limesurvey.org lub otwierając raport o błędzie w naszym [http:// bugs.limesurvey.org narzędzie do śledzenia błędów] (proszę oznaczyć jako prywatne).

Ograniczenia serwera WWW

Jeśli używasz Apache, LimeSurvey dołącza inny plik htaccess w celu ograniczenia. sprawdź, czy masz włączone htaccess AllowOverride .

Z innym serwerem WWW lub jeśli chcesz używać AllowOverride None : musisz

  • (opcja) wyłącz dostęp do wszystkich plików aplikacji, chronionych, frameworku i motywów/*/views
  • wyłącz dostęp do przesyłania plików przez użytkownika /upload/surveys/.*/fu_[a-z0-9]
  • (opcja) wyłącz dostęp do pliku wykonywalnego w katalogu przesyłania

Próbkę dla nginx można znaleźć w naszym Ogólne pytania

Uprawnienia do plików w systemie Linux

Jeśli korzystasz z serwera Linux, wymagane jest odpowiednie ustawienie uprawnień do plików, aby zabezpieczyć instalację LimeSurey.

Podstawowe fakty na temat uprawnień do plików Linux/*nix

System operacyjny Linux/*nix obsługuje wielu użytkowników. Oznacza to, że poza Twoim kontem osobistym w systemie mogą istnieć inne konta użytkowników i powinieneś zadbać o to, jakie uprawnienia nadajesz innym użytkownikom.

Wskazówka: ustawienie uprawnień do plików jest szczególnie ważne w celu zabezpieczenia plików konfiguracyjnych zawierających krytyczne dane, takie jak hasła.

Pamiętaj, że konto „root” zawsze otrzyma pozwolenie na dostęp do Twoich plików (bez względu na to, jakie uprawnienia do plików ustawisz), ponieważ jest to użytkownik superadministrator.

Serwer WWW (na którym działa LimeSurvey) również działa pod daną tożsamością (użytkownikiem). W systemie Linux jest to zwykle użytkownik „www”, „www-data” (w Debianie/Ubuntu), „apache” lub „nobody”. Jednak niektóre firmy hostingowe korzystają z systemów (takich jak suexec), które umożliwiają uruchamianie skryptów LimeSurvey z Twoim osobistym użytkownikiem. Oczywiście użytkownik serwera WWW musi mieć uprawnienia do odczytu plików LimeSurvey. Jednak tylko niewielki podzbiór podkatalogów LimeSurvey musi być możliwy do zapisu przez użytkownika serwera WWW.

'Wskazówka: bardzo cenne jest odebranie użytkownikowi serwera WWW uprawnień do zapisu w tych podkatalogach LimeSurvey, które tego nie wymagają. Rzeczywiście, nawet jeśli zostanie wykryta luka w LimeSurvey, główne pliki będą nadal chronione przed nielegalną modyfikacją dzięki uprawnieniom systemu plików.

Ustawianie uprawnień do plików w samodzielnie zarządzanym systemie Linux

Jeśli zarządzasz konfiguracją swojego serwera WWW i systemu operacyjnego (jesteś właścicielem serwera fizycznego lub wynajmujesz serwer wirtualny, na którym masz dostęp do roota), możesz rozważyć poniższe zalecenia.

Możesz najpierw ustawić właściciela i grupę plików LimeSurvey, co ułatwi konfigurację uprawnień do plików. Możliwą strategią jest ustawienie właściciela plików LimeSurvey na swoją osobistą nazwę użytkownika, a grupy plików LimeSurvey na grupę serwera WWW. Zwykle ta grupa serwerów WWW zawiera tylko konto serwera WWW (i ewentualnie inne konto webmastera). Na przykład, jeśli Twoja nazwa użytkownika to „moje konto”, a użytkownikiem serwera WWW jest „Apache” w grupie „Apache”, wówczas z poziomu powłoki możesz użyć następującego polecenia: $ chown -R myaccount:apache limesurvey/ . Następnie ustaw uprawnienia do plików i podkatalogów.

Aby skrypt działał poprawnie, potrzebne są uprawnienia do zapisu w niektórych katalogach:

  • Katalog /limesurvey/application/config wymaga opcji „Odczyt i zapis” w celu zapisania ustawień konfiguracyjnych aplikacji
  • Katalog /limesurvey/ Katalog tmp i jego podkatalogi są używane do importowania/przesyłania i powinny być ustawione na „Odczyt i zapis” dla Twojego serwera WWW
  • Katalog/przesyłania i wszystkie jego podkatalogi muszą mieć także ustawioną opcję „Odczyt” & Zapis”, aby umożliwić przesyłanie zdjęć i plików multimedialnych
  • Wszystkie pozostałe katalogi i pliki można ustawić jako „Tylko do odczytu”
Wskazówka: zakładając, że zastosowałeś się do powyższych zaleceń dotyczących właściciela/grupy, ustawienia te można zastosować za pomocą następujących poleceń:

$ chmod -R o-r-w-x limesurvey/

$ chmod -R -w limesurvey/

$ chmod -R 770 limesurvey/application/config

$ chmod -R 770 limesurvey/tmp

$ chmod -R 770 limesurvey/upload

Ustawianie uprawnień do plików na hostowanym serwerze internetowym

Biorąc pod uwagę trudność standardowej procedury zabezpieczania aplikacji internetowej w środowisku hostowanym, jest to raczej trudne, ponieważ środowiska hostowane różnią się pod wieloma względami.

W przypadku serwera zarządzanego serwer potrzebuje dostępu do zapisu w niektórych katalogach, aby skrypt działał poprawnie:

  • Katalog /limesurvey/tmp jest używany do importowania/przesyłania i powinien być ustawiony na „Odczyt i zapis” ' dla Twojego serwera WWW
  • Katalog przesyłania/i wszystkie jego podkatalogi muszą także mieć opcję „Odczyt i zapis” dla Twojego serwera WWW, aby umożliwić przesyłanie zdjęć i plików multimedialnych
  • Pozostałe katalogi i pliki powinny być ustawione na „Tylko do odczytu”
Wskazówka:
  • W zależności od konfiguracji serwera WWW, będziesz musiał zmienić uprawnienia do zapisywalnych folderów na 755 lub 777, aby umożliwić zapis dla Internetu serwer. Spróbuj najpierw 755, jeśli to nie zadziała, „uaktualnij” do 777
  • Możesz także spróbować usunąć dostęp innych użytkowników do odczytu config.php, ustawiając uprawnienia tego pliku na 750 - jeśli to nie zadziała, „uaktualnij” „do 755

Uprawnienia do plików systemu Windows

Jeśli używasz serwera Windows, powinieneś upewnić się, że folder admin umożliwia właścicielowi procesu serwera WWW zapisywanie plików w tym katalogu. Pozostałe pliki można ustawić jako tylko do odczytu i wykonywać.

Inne problemy bezpieczeństwa

Poniżej znajdują się jedynie zalecenia. Ogólnie rzecz biorąc, LimeSurvey jest bardzo bezpieczny bez tych dodatkowych środków. Jeśli jednak zbierasz wyjątkowo wrażliwe dane, pomocne może być dodatkowe zabezpieczenie:

Użycie protokołu SSL

Generalnie zalecamy korzystanie z protokołu SSL w przypadku wrażliwych danych ankietowych. Zwykle włączasz SSL, poprawnie konfigurując serwer WWW i używając certyfikatu SSQL. Jeśli włączyłeś SSL, powinieneś cały czas wymuszać SSL w ustawienia globalne LimeSurvey. Dodatkowo, możesz ustawić używanie „bezpiecznych” plików cookie jedynie poprzez edycję odpowiednia opcja w config.php.

Dostęp do pliku config.php

Template:Alarm

Plik /application/config/config.php zawiera nazwę użytkownika i hasło do serwera bazy danych. Stwarza to pewne problemy związane z bezpieczeństwem, szczególnie jeśli używasz loginu, który ma dostęp administracyjny na wysokim poziomie do Twojej bazy danych. W przypadku wystąpienia błędu podczas zwracania zawartości tego pliku PHP do przeglądarki użytkownika, hasło do bazy danych i inne szczegóły mogą zostać naruszone (jest to jednak bardzo mało prawdopodobny scenariusz). Najlepszym sposobem na zminimalizowanie ryzyka jest ustawienie specjalnego loginu, który ma określone uprawnienia tylko do Twojej bazy danych LimeSurvey.

Innym sposobem zabezpieczenia tych informacji może być umieszczenie informacji z pliku /application/config/config.php w katalogu innym niż internetowy, tj. dla użytkowników Apache jest to katalog znajdujący się nad folderem htdocs (znanym również jako public_html lub www) . Zasadniczo użyjesz pliku config.php, ale będziesz miał w nim jedną linię - linię zawierającą plik z RZECZYWISTYMI informacjami konfiguracyjnymi (np.:<?php return include("/home/hostfolder/safedata/configreal.php"); ?> ). Usuń wszystkie aktualne informacje konfiguracyjne z /application/config/config.php i wklej je do innego pliku (configreal.php), który jest wymieniony w pliku /application/config/'config.php. Ten inny plik powinien znajdować się w katalogu innym niż internetowy. Wtedy /application/config/config.php nie będzie zawierał haseł do baz danych itp. - tylko nazwę pliku, który ''''''' zawiera informacje o bazie danych.

Pozwala to uniknąć konieczności zmiany wszystkich innych plików, które zawierają /application/config/config.php, ponieważ config.php „przekierowuje je” do pliku konfiguracyjnego znajdującego się w katalogu innym niż internetowy, który zawiera wszystkie rzeczywiste informacje konfiguracyjne . Będziesz jednak musiał edytować plik configreal.php i zmienić następujące parametry, aby używać bezwzględnych ścieżek katalogów do prawidłowego działania:

'basePath' => nazwakatalogu(nazwakatalogu('''PLIK'')),
'runtimePath' => nazwakatalogu(nazwakatalogu(nazwakatalogu('''PLIK''))).DIRECTORY_SEPARATOR.'tmp'. DIRECTORY_SEPARATOR.'runtime',
[...]

'urlManager' => array(
 [...]
 'rules' => require('routes.php'),
 [...]
);

Przykład:

'basePath' => '/var/www/htdocs/limesurvey',
'runtimePath' => '/var/www/htdocs/limesurvey/tmp/runtime',
[...]

'urlManager' => array(
 [...]
 'rules' => require('/var/www/htdocs/limesurvey/config/routes.php'),
 [... ]
);

Ponadto „nie używaj „admin” jako domyślnego użytkownika”. Przejdź do swojej bazy danych MySQL (lub tej, w której zainstalowałeś LimeSurvey) i zmień domyślną nazwę użytkownika „admin” na dowolną (np. „admin_xyz”). Odgadnięcie nowej nazwy użytkownika administratora będzie teraz znacznie trudniejsze. Pamiętaj, że jest to jedna z dwóch zmiennych, których intruzi mogą użyć, aby uzyskać dostęp. Hasło administratora to druga zmienna. Dlatego wybieraj oba z dużą ostrożnością.


Polityka bezpieczeństwa treści (CSP)

ZASTRZEŻENIE — Podany tutaj CSP jest jedynie przykładem i nie należy go używać dosłownie. Jest to punkt wyjścia i MUSISZ dostosować go do swoich potrzeb i dokładnie przetestować. <IfModule mod_headers.c> Nagłówek zawsze ustawiony na Politykę bezpieczeństwa treści „default-src „self”; script-src „self” „unsafe-inline” „unsafe-eval”; style-src „self” „unsafe-inline”; base-uri „none” '; form-action 'self'; przodkowie ramek 'self'; upgrade-insecure-requests" "expr=%{CONTENT_TYPE} =~ m#text\/(html|javascript)|application\/pdf|xml#i " </IfModule>