Telepítési biztonsági tanácsok
From LimeSurvey Manual
Általános
Felhívjuk figyelmét, hogy a biztonsági kérdéseket nagyon komolyan vesszük, és gyorsan reagálunk. Ezért ha a LimeSurvey-ben bármilyen biztonsági problémáról tud, kérjük, jelezze felénk hibajelentés megnyitásával a hibakövetőnkben (kérjük, a hibát jelölje „security” súlyossággal vagy kategóriával).
További részletekért kérjük, tekintse meg a biztonsági problémák/sebezhetőségek bejelentésére vonatkozó biztonsági szabályzatunkat.
Webszerver korlátozása
A LimeSurvey .htaccess fájlokat tartalmaz, amelyek blokkolják a webes hozzáférést azokhoz a fájlokhoz és könyvtárakhoz, amelyeket csak a szerver használ. Ha Apache-ot használ, győződjön meg arról, hogy ezek a fájlok engedélyezettek az AllowOverride All beállítással, és hogy a mod_rewrite be van kapcsolva.
Más webszerverek, például az nginx vagy az IIS figyelmen kívül hagyják a .htaccess fájlokat, ahogy az Apache is az AllowOverride None beállítással. Ebben az esetben a webszerver konfigurációjában tiltsa le a webes hozzáférést a következőkhöz:
- az application, vendor, docs, locale, modules és tmp/runtime könyvtárak
- a conf, core, doc, integration, lang, lib és tpl könyvtárak az assets/packages/kcfinder könyvtárban
- a setdebug.php és az open-api-gen.php fájlok
- a fejlesztési fájlok a LimeSurvey gyökérkönyvtárában: composer.json, composer.lock, package.json, yarn.lock, gulpfile.js, phpunit.xml, psalm*.xml, phpci.yml, phpcs.ruleset.xml, publiccode.yml, manifest.yml, CONTRIBUTING.md, README.md és SECURITY.md
- a rejtett fájlok és könyvtárak (a nevük ponttal kezdődik), a .well-known kivételével
- a naplófájlok (*.log)
- a kérdőív résztvevői által feltöltött fájlok: az fu_ előtaggal kezdődő fájlok az upload/surveys könyvtárban és annak alkönyvtáraiban
Gondoskodjon arról is, hogy az upload könyvtárban lévő szkriptek soha ne legyenek futtathatók, például a PHP-, Perl-, Python- vagy shell-szkriptek.
A LimeSurvey csomag tartalmazza a beépített könyvtárak dokumentációját, példáit és teszteit is, például a vendor és a docs könyvtárakban. Ne törölje ezeket a fájlokat: a következő frissítés visszahozza őket. Ehelyett tiltsa le a webes hozzáférést ezekhez a könyvtárakhoz a fent leírtak szerint.
Az nginx-re vonatkozó példát a LimeSurvey nginx példakonfiguráció oldalon találhatja meg.
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ó
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ítania kelljen az összes többi fájlt, amely tartalmazza a /application/config/config.php fájlt, mivel a config.php „átirányítja őket” a nem webes könyvtárban található konfigurációs fájlhoz, amely az összes valós konfigurációs információt tartalmazza.
Továbbá ne használja az „admin” vagy az „administrator” nevet alapértelmezett felhasználóként. Nyissa meg a MySQL adatbázist (vagy azt, amelybe a LimeSurvey-t telepítette), és módosítsa az alapértelmezett „admin” felhasználónevet tetszőlegesre (pl. „admin_xyz”). Így sokkal nehezebb lesz kitalálni a kérdőívkezelő új felhasználónevét. Ne feledje, ez az egyik a két változó közül, amelyet a behatolók a hozzáféréshez felhasználhatnak. A másik változó a kérdőívkezelő jelszava. Ezért mindkettőt rendkívül körültekintően válassza meg.
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>