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
- A webszerver konfigurációjától függően módosítania kell az írható mappák jogait 755-re vagy 777-re, hogy írható legyen a weben szerver. Először próbálja meg a 755-öt, ha nem működik, 'frissítsen' 777-re
- Megpróbálhatja eltávolítani más felhasználók olvasási hozzáférését a config.php fájlhoz, ha ennek a fájlnak a jogosultságait 750-re állítja - ha nem működik, frissítse 755-re
Windows fájlengedélyek
Ha Windows kiszolgálót használ, gondoskodnia kell arról, hogy az adminisztrációs mappa lehetővé tegye a webszerver folyamat tulajdonosa számára, hogy fájlokat írjon ebbe a könyvtárba. A többi fájl csak olvasható és végrehajtható.
Egyéb biztonsági problémák
Az alábbiak csak ajánlások. A LimeSurvey általában nagyon biztonságos ezen kiegészítő intézkedések nélkül. Ha azonban rendkívül érzékeny adatokat gyűjt, egy kis további biztonság segíthet:
SSL használat
Általában javasoljuk az SSL használatát a kényes felmérési adatokhoz. Az SSL-t általában a webszerver megfelelő konfigurálásával és SSQL-tanúsítvány használatával engedélyezi. Ha engedélyezte az SSL-t, akkor a LimeSurvey globális beállításaiból folyamatosan érvényesítenie kell az SSL-t. Ezenkívül csak a „biztonságos” cookie-k használatát állíthatja be, ha módosítja a config.php fájl megfelelő beállítását.
A config.php fájl elérése
Az /application/config/config.php fájl egy felhasználónevet és jelszót tartalmaz az adatbázis-kiszolgálóhoz. Ez bizonyos biztonsági problémákat vet fel, különösen, ha olyan bejelentkezést használ, amely magas szintű rendszergazdai hozzáféréssel rendelkezik az adatbázishoz. Abban az esetben, ha hiba történik a PHP-fájl tartalmának a felhasználó böngészőjébe való visszaküldése során, az adatbázis jelszava és egyéb adatok veszélybe kerülhetnek (ez azonban nagyon valószínűtlen forgatókönyv). A kockázat minimalizálásának legjobb módja egy olyan bejelentkezés beállítása, amely csak a LimeSurvey adatbázishoz rendelkezik meghatározott jogokkal.
Egy másik módja ennek az információnak az, hogy az /application/config/config.php fájlból származó információkat egy nem webes könyvtárba helyezzük, azaz az Apache felhasználók számára ez a htdocs (más néven public_html vagy www) mappa feletti könyvtár. . Alapvetően a config.php-t fogja használni, de van benne egy sor – egy sor, amely tartalmazza a fájlt a VALÓS konfigurációs információkkal (pl.:<?php return include("/home/hostfolder/safedata/configreal.php"); ?> ). Távolítson el minden tényleges konfigurációs információt a /application/config/config.php fájlból, és illessze be a másik fájlba (configreal.php), amely a /application/config/config.php fájlban szerepel. Ennek a másik fájlnak egy nem webes könyvtárban kell lennie. Ekkor az /application/config/config.php nem tartalmaz adatbázisjelszavakat stb. – csak annak a fájlnak a nevét, amely VAN tartalmazza az adatbázis-információkat.
Ezzel elkerülhető, hogy módosítsa az összes többi fájlt, amely tartalmazza a /application/config/config.php fájlt, mivel a config.php „átirányítja őket” a konfigurációs fájlhoz, amely egy nem webes könyvtárban található, és tartalmazza az összes valós konfigurációs információt. . A megfelelő működéshez azonban módosítania kell a configreal.php fájlt, és módosítania kell a következő paramétereket:
'basePath' => dirname(dirname('''FILE''')),
'runtimePath' => dirname(dirname(dirname('''FILE'''))).DIRECTORY_SEPARATOR.'tmp'. DIRECTORY_SEPARATOR.'futásidejű',
[...]
'urlManager' => array(
[...]
'szabályok' => request('routes.php'),
[...]
);
Példa:
'basePath' => '/var/www/htdocs/limesurvey',
'runtimePath' => '/var/www/htdocs/limesurvey/tmp/runtime',
[...]
'urlManager' => array(
[...]
'rules' => request('/var/www/htdocs/limesurvey/config/routes.php'),
[... ]
);
Ezenkívül ne használja az "admin"-t alapértelmezett felhasználóként. Nyissa meg a MySQL adatbázist (vagy azt, amelybe telepítette a LimeSurvey-t), és módosítsa az alapértelmezett "admin" felhasználónevet arra, amit szeretne (pl. "admin_xyz"). Most sokkal nehezebb lesz kitalálni a rendszergazda új felhasználónevét. Ne feledje, ez az egyike annak a két változónak, amelyet a behatolók használhatnak a hozzáféréshez. Az adminisztrátori jelszó a másik változó. Ezért nagyon óvatosan válassza mindkettőt.
Tartalombiztonsági szabályzat (CSP)
NYILATKOZAT – Az itt megadott CSP csak példa, és nem szó szerint használható. Kiindulópontnak szánja, és az Ön igényeihez KELL igazítania és alaposan tesztelnie kell. <IfModule mod_headers.c> A fejléc mindig beállítva: Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' "nem biztonságos inline"; base-uri 'none '; form-action 'self'; keret-elődök 'self'; upgrade-insecure-requests" "expr=%{CONTENT_TYPE} =~ m#text\/(html|javascript)|application\/pdf|xml#i " </IfModule>