Telepítési biztonsági tanácsok
From LimeSurvey Manual
Általános
A LimeSurvey saját biztonságára támaszkodik, amely alapértelmezés szerint aktiválva van. A szoftver szerzői nem vállalnak felelősséget a szoftver megfelelőségével vagy biztonsági szintjével kapcsolatban, és nem támasztanak állításokat. A biztonsági kérdéseket azonban nagyon komolyan vesszük, és gyorsan reagálunk. Ezért, ha bármilyen biztonsági problémáról tud a LimeSurvey-n belül, kérjük, ossza meg velünk vagy küldjön egy e-mailt a info@limesurvey.org címre, vagy nyissa meg a hibajelentést a [http:// bugs.limesurvey.org hibakövető] (kérjük, jelölje meg privátként).
Webszerver korlátozása
Ha apache-t használ, a LimeSurvey különböző htaccess fájlokat tartalmaz korlátozásként. ellenőrizze, hogy engedélyezi-e a htaccess-t AllowOverride
segítségével.
Más webszerverrel vagy ha AllowOverride None
szeretné használni: ezt muszáj
- (opció) letiltja a hozzáférést az összes fájlhoz az alkalmazásban, a védett, a keretrendszerben és a témákban/*/views
- letiltja a hozzáférést a /upload/surveys/ felhasználó által feltöltött fájlokhoz.*/fu_[a-z0-9]
- (opció) letiltja a hozzáférést a futtatható fájlhoz a feltöltési könyvtárban
Az nginx-re vonatkozó mintát az Általános GYIK oldalon találhat.
Linux fájlengedélyek
Ha Linux-kiszolgálót használ, a LimeSurey telepítésének biztonságához a fájljogosultságok megfelelő beállítása szükséges.
Alapvető tények a Linux/*nix fájlengedélyekről
A Linux/*nix operációs rendszer többfelhasználós. Ez azt jelenti, hogy az Ön személyes fiókján kívül más felhasználói fiókok is létezhetnek a rendszerben, és Önnek gondoskodnia kell arról, hogy milyen engedélyeket ad más felhasználóknak.

'Ne feledje, hogy a 'root' fiók mindig megkapja a hozzáférési engedélyt a fájlokhoz (függetlenül attól, hogy milyen fájlengedélyeket állít be), mivel ez a szuper-admin felhasználó.
A webszerver (amely a LimeSurvey-t futtatja) szintén adott identitás (felhasználó) alatt fut. Linuxon ez általában a „www”, „www-data” (Debian/Ubuntu), „apache” vagy „nobody” felhasználó. Egyes hosting cégek azonban olyan rendszereket (például suexec) használnak, amelyek lehetővé teszik a LimeSurvey szkriptek futtatását az Ön személyes felhasználójával. Természetesen a webszerver felhasználójának rendelkeznie kell a LimeSurvey fájlok olvasásának jogával. Azonban a LimeSurvey alkönyvtárak csak egy kis részhalmazát írhatja a webszerver felhasználója.

Fájlengedélyek beállítása egy önállóan kezelt Linux rendszeren
Ha Ön kezeli a webszerverét és az operációs rendszer konfigurációját (Ön a fizikai szerver tulajdonosa, vagy olyan virtuális szervert bérel, amelyhez root hozzáféréssel rendelkezik), fontolóra veheti az alábbi ajánlásokat.
Először beállíthatja a LimeSurvey-fájlok tulajdonosát és csoportját, hogy ez megkönnyítse a fájlengedélyek beállítását. Egy lehetséges stratégia az, hogy a LimeSurvey fájlok tulajdonosát a személyes felhasználónevére, a LimeSurvey fájlok csoportját pedig a webszerver csoportra állítja. Általában ez a webszerver-csoport csak a webszerver-fiókot (és esetleg egy másik webmester-fiókot) tartalmazza. Például, ha az Ön felhasználóneve „myaccount”, és a webszerver felhasználója „apache” az „apache” csoportban, akkor shell-hozzáférésből a következő parancsot használhatja: $ chown -R myaccount:apache limesurvey/
. Ezt követően állítsa be a fájl és az alkönyvtárak engedélyeit.
A szkript megfelelő működéséhez bizonyos könyvtárakhoz írási hozzáférésre van szükség:
- A /limesurvey/application/config könyvtár Read & Write-t igényel az alkalmazás konfigurációs beállításainak mentéséhez
- A /limesurvey/ A tmp könyvtár és alkönyvtárai az importáláshoz/feltöltéshez használatosak, és a webszervernél Olvasás és Írás értékre kell állítani
- A feltöltési/könyvtárnak és minden alkönyvtárának is be kell állítania az Olvasás értéket. & Írási engedélyek a képek és médiafájlok feltöltésének engedélyezéséhez
- Az összes többi könyvtár és fájl „Csak olvasható” értékűre állítható

$ 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
Fájlengedélyek beállítása egy hosztolt webszerveren
Figyelembe véve a webalkalmazások hosztolt környezetben való biztonságossá tételére szolgáló szabványos eljárás nehézségeit, ez meglehetősen nehéz, mivel a hosztolt környezetek sok tekintetben különböznek egymástól.
A felügyelt szerver esetében a kiszolgálónak írási hozzáférésre van szüksége néhány könyvtárhoz a szkript megfelelő működéséhez:
- A /limesurvey/tmp könyvtárat az importáláshoz/feltöltéshez használják, és Olvasás és Írás értékre kell állítani. ' az Ön webszerveréhez
- A feltöltési/könyvtárnak és minden alkönyvtárának rendelkeznie kell az Olvasás és írás funkcióval is a webszerverhez, hogy engedélyezze a képek és médiafájlok feltöltését
- A többi könyvtár, ill. a fájlokat "Csak olvasható" értékre kell állítani

- 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
- 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
Windows file permissions
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.
Other security issues
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:
SSL usage
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 of LimeSurvey. Additionally, you could only set to use 'secure' cookies by editing the respective option in config.php.
The access to the config.php file

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.
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: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>
). 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.
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:
'basePath' => dirname(dirname('''FILE''')),
'runtimePath' => dirname(dirname(dirname('''FILE'''))).DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR.'runtime',
[...]
'urlManager' => array(
[...]
'rules' => require('routes.php'),
[...]
);
Example:
'basePath' => '/var/www/htdocs/limesurvey',
'runtimePath' => '/var/www/htdocs/limesurvey/tmp/runtime',
[...]
'urlManager' => array(
[...]
'rules' => require('/var/www/htdocs/limesurvey/config/routes.php'),
[...]
);
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.
Content Security Policy (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.
<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>