Actions

Installation security hints/sl: Difference between revisions

From LimeSurvey Manual

(Created page with "Prav tako ne uporabljajte "admin" uporabnika za privzetega uporabnika. Pojdite v vašo MySQL podatkovno zbirko (ali drugo, če ste namestili LimeSurvey na drugi podatkovni zb...")
(Created page with "'''OPOZORILO - Tukaj navedeni CSP je samo primer in ni namenjen dobesedni uporabi. Zamišljeno je kot izhodišče in MORATE ga prilagoditi svojim potrebam ter temeljito preizk...")
 
(45 intermediate revisions by 3 users not shown)
Line 4: Line 4:
==Splošno==
==Splošno==


LimeSurvey se zanaša na svoj lasten varnostni sistem, ki je samodejno vključen. Avtorji tega programa ne prevzemajo nobene odgovornosti in ne dajejo nobenih izjav v zvezi z ustreznostjo ali varnostjo te opreme. Kljub temu jemljemo varnost zelo resno in hitro reagiramo. Če veste za kakršen koli varnostni problem z LimeSurvey-em, nas prosimo obvestite na naš [http://bugs.limesurvey.org portal za sledenje težavam] (imejte v vednosti, da je zaseben).
LimeSurvey se zanaša na lastno varnost, ki je privzeto aktivirana. Avtorji te programske opreme ne prevzemajo nobene odgovornosti in ne dajejo nikakršnih trditev v zvezi z ustreznostjo ali stopnjo varnosti te programske opreme. Vendar varnostna vprašanja jemljemo zelo resno in se hitro odzovemo. Zato, če poznate kakršne koli varnostne težave znotraj LimeSurvey, nam to sporočite tako, da nam pošljete e-pošto na [mailto:info@limesurvey.org info@limesurvey.org] ali odprete poročilo o napaki v našem [http:// bugs.limesurvey.org bug tracker] (prosimo, označite kot zasebno).
 
==Omejitev spletnega strežnika==
 
Če uporabljate apache, LimeSurvey vključi drugo datoteko htaccess za omejitev. preverite, ali ste dovolj vključili htaccess z <code>AllowOverride</code> .
 
Z drugim spletnim strežnikom ali če želite uporabiti <code>AllowOverride None</code> : morate
 
* (možnost) onemogoči dostop do vseh datotek v aplikacijah, zaščitenih, ogrodjih in temah/*/views
* onemogoči dostop do datotek, ki jih naloži uporabnik /upload/surveys/.*/fu_[a-z0-9]
* (možnost) onemogoči dostop do izvedljive datoteke v imeniku za nalaganje
 
Vzorec za nginx najdete na [[General_FAQ#With_nginx_webserver|Splošna pogosta vprašanja]]


==Pravice na Linux-ovih datotekah==
==Pravice na Linux-ovih datotekah==


Če uporabljate Linux strežnik, so za zaščito vašega nameščenega LimeSurvay-a potrebne nastavitve ustreznih pravic na datotekah.
Če uporabljate strežnik Linux, je za zaščito vaše namestitve LimeSurey potrebna ustrezna nastavitev dovoljenj za datoteke.


===Osnovna dejstva o pravicah na Linux/*nix datotekah===
===Osnovna dejstva o pravicah na Linux/*nix datotekah===
Line 14: Line 26:
Linux/*nix operacijski sistem je večuporabniški. To pomeni da poleg vašega osebnega računa lahko na sistemu obstajajo še drugi uporabniški računi in je potrebno paziti, kakšne pravice dajate ostalim uporabnikom.
Linux/*nix operacijski sistem je večuporabniški. To pomeni da poleg vašega osebnega računa lahko na sistemu obstajajo še drugi uporabniški računi in je potrebno paziti, kakšne pravice dajate ostalim uporabnikom.


<div class="simplebox">[[File:help.png]] '''Namig:''' Nastavljanje pravic na datotekah je še posebej pomembno pri zaščiti konfiguracijskih datotek, ki vsebujejo zelo kritične podatke kot so gesla.</div>
<div class="simplebox">[[Datoteka:help.png]] '''Namig:''' nastavitev dovoljenj za datoteke je še posebej pomembna za zaščito konfiguracijskih datotek, ki vsebujejo kritične podatke, kot so gesla.</div>


''Upoštevajte, da ima 'root' račun kot super skrbniški uporabnik vedno odobren dostop do vaših datotek (ne glede na to, kakšne pravice nad datotekami ste nastavili).''
'''Upoštevajte, da bo 'root' računu vedno odobreno dovoljenje za dostop do vaših datotek (ne glede na to, katera dovoljenja za datoteke ste nastavili), saj je superskrbniški uporabnik.'''


Spletni strežnik (na katerem teče LimeSurvey) teče pod točno določeno identiteto (uporabnikom). Na Linux-u je to običajno uporabnik 'www','www-data' (na Debian/Ubuntu), 'apache' ali 'nobody'. Nekateri ponudniki za gostovanja uporabljajo sisteme (kot je suexec), ki omogočajo zaganjanje LimeSurvey-evih zagonskih datotek z vašim osebnim uporabniškim računom. Seveda morajo imeti uporabniki na spletnih strežnikih pravico branja na LimeSurvey-evih datotekah. Le manjša skupina LimeSurvey-evih podmap mora biti zapisljivih s strani spletnih uporabnikov.
Tudi spletni strežnik (ki poganja LimeSurvey) deluje pod dano identiteto (uporabnik). V Linuxu je to običajno 'www', 'www-data' (v Debian/Ubuntu), 'apache' ali 'nobody' uporabnik. Vendar nekatera podjetja za gostovanje uporabljajo sisteme (kot je suexec), ki omogočajo izvajanje skriptov LimeSurvey z vašim osebnim uporabnikom. Seveda mora imeti uporabnik spletnega strežnika pravico do branja datotek LimeSurvey. Vendar pa mora uporabnik spletnega strežnika omogočati zapisovanje le v majhno podmnožico podimenikov LimeSurvey.


<div class="simplebox">[[File:help.png]] '''Namig''': zelo pomembno je, da prekličete pravico pisanja za spletnega uporabnika nad tistimi podmapami, ki tega ne potrebujejo. Čeprav bi se morda našle ranljivosti v LimeSurvey-u, bi bile glavne datoteke še vedno zaščitene pred nedovoljenim spreminjanjem zahvaljujoč sistemskim pravicam nad datotekami.</div>
<div class="simplebox">[[Datoteka:help.png]] '''Namig'': zelo dragoceno je preklic dovoljenja za pisanje za uporabnika spletnega strežnika v te podimenike LimeSurvey, ki tega ne potrebujejo. Dejansko, tudi če se odkrije ranljivost LimeSurvey, bodo glavne datoteke še vedno zaščitene pred nedovoljenimi spremembami zahvaljujoč dovoljenjem datotečnega sistema.</div>


===Nastavljanje pravic nad datotekami na Linux-sistemu v lastnem upravljanju===
===Nastavljanje pravic nad datotekami na Linux-sistemu v lastnem upravljanju===


Če upravljate lasten spletni strežnik in operacijski sistem (ste lastnik strežnika ali imate v najemu virtualni strežnik, na katerem imate korenski dostop), lahko upoštevate ta priporočila.
Če upravljate svoj spletni strežnik in konfiguracijo operacijskega sistema (ste lastnik fizičnega strežnika ali najemate virtualni strežnik, do katerega imate korenski dostop), lahko upoštevate naslednja priporočila spodaj.


Najprej lahko nastavite lastnika in skupino vaših LimeSurvey-evih datotek, s čimer bo olajšano nastavljanje pravic nad datotekami.
Najprej lahko nastavite lastnika in skupino svojih datotek LimeSurvey, tako da bo olajšana nastavitev dovoljenj za datoteke. Možna strategija je, da lastnika datotek LimeSurvey nastavite na svoje osebno uporabniško ime, skupino datotek LimeSurvey pa na skupino spletnega strežnika. Običajno ta skupina spletnih strežnikov vsebuje samo račun spletnega strežnika (in morda še en račun spletnega skrbnika). Na primer, če je vaše uporabniško ime 'myaccount' in je uporabnik spletnega strežnika 'apache' v skupini 'apache', potem lahko iz lupinskega dostopa uporabite naslednji ukaz: <code>$ chown -R myaccount:apache limesurvey/</code> . Nato nastavite dovoljenja za datoteke in podimenike.


Eden možnih pristopov je, da nastavite za lastnika LimeSurvey-evih datotek vaše osebno uporabniško ime in skupino LimeSurvey-ih datotek skupino spletnega strežnika. Običajno ta skupina spletnega strežnika vsebuje le račun spletnega strežnika (in najverjetneje še kakšen račun za spletnega skrbnika).
Za pravilno delovanje skripta je potreben dostop za pisanje v nekatere imenike:
*Imenik /limesurvey/application/config zahteva ''Read & Write'' za shranjevanje konfiguracijskih nastavitev aplikacije
*Imenik /limesurvey/ Imenik tmp in njegovi podimeniki se uporabljajo za uvoz/nalaganje in morajo biti za vaš spletni strežnik nastavljeni na »Branje in pisanje«
*Imenik za nalaganje in vsi njegovi podimeniki morajo imeti tudi nastavljeno »Branje & Write'' dovoljenja, da omogočite nalaganje slik in medijskih datotek
* Vse druge imenike in datoteke lahko nastavite na ''Samo za branje''


Na primer če je vaše uporabniško ime 'mojračun' in je uporabnik spletnega strežnika 'apache' v skupini 'apache', potem lahko iz ukazne lupine uporabite sledeč ukaz:
<div class="simplebox">[[Datoteka:help.png]] '''Namig:''' ob predpostavki, da ste upoštevali zgornja priporočila za lastnika/skupino, lahko te nastavitve uporabite z naslednjimi ukazi:


$ chown -R myaccount:apache limesurvey/
<code>$ chmod -R o-r-w-x limesurvey/</code>


Potem nastavite pravice nad datotekami in podmapami.
<code>$ chmod -R -w limesurvey/</code>


Da bodoukazne datoteke (skripte) ustrezno delovale, potrebujejo pravico pisanja nad nekaterimi mapami:
<code>$ chmod -R 770 limesurvey/application/config</code>
*"/limesurvey/tmp" mapi in njenih podmapah, ki se uporabljajo za uvažanje/nalaganje in morajo biti nastavljene na  ''branje in pisanje'' na vašem spletnem strežniku.
*mapa upload/ in vse njene podmape prav tako potrebujejo pravico ''branja in pisanja'' na vašem spletnem strežniku, če želite omogočiti nalaganje slikam in medijskim datotekam.
* vse ostale mape in datoteke so lahko nastavljeno na pravico ''samo za branje''


<div class="simplebox">[[File:help.png]] '''Namig:''' v kolikor boste upoštevali zgornja priporočila, lahko te nastavitve uveljavite z naslednjimi ukazi:
<code>$ chmod -R 770 limesurvey/tmp</code>


$ chmod -R o-r-w-x limesurvey/
<code>$ chmod -R 770 limesurvey/upload</code>


$ chmod -R -w limesurvey/
</div>


$ chmod -R 770 limesurvey/tmp
===Nastavitev dovoljenj za datoteke na gostujočem spletnem strežniku===


$ chmod -R 770 limesurvey/upload
Glede na težavnost standardnega postopka za zaščito spletne aplikacije v gostujočem okolju je to precej težko, ker se gostujoča okolja razlikujejo v mnogih pogledih.


</div>
V primeru upravljanega strežnika potrebuje strežnik dostop za pisanje v nekatere imenike, da lahko skript pravilno deluje:
*Imenik /limesurvey/tmp se uporablja za uvoz/nalaganje in mora biti nastavljen na ''Branje in pisanje'' ' za vaš spletni strežnik
*Imenik za nalaganje in vsi njegovi podimeniki morajo imeti tudi »Branje in pisanje« za vaš spletni strežnik, da omogočite nalaganje slik in predstavnostnih datotek
* Drugi imeniki in datoteke morajo biti nastavljene na »Samo za branje«


===Nastavljanje pravic nad datotekami na gostujočem spletnem strežniku===
<div class="simplebox">[[Datoteka:help.png]] '''Namig:'''
* Odvisno od konfiguracije vašega spletnega strežnika boste morali pravice za zapisljive mape spremeniti v chmod na 755 ali 777, da omogočite pisanje v spletu strežnik. Najprej poskusite 755, če ne deluje, 'nadgradite' na 777
* Prav tako lahko poskusite odstraniti bralni dostop drugih uporabnikov do config.php tako, da nastavite dovoljenja te datoteke na 750 - če ne deluje, 'nadgradite' ' do 755</div>


Posredovanje običajnega postopka za zaščito spletne aplikacije v gostujočih okoljih je težavno, saj se okolja za gostovanja med seboj razlikujejo na več načinov.
==Pravice nad datotekami v okolju Windows==


Podobno kot v primeru strežnika v lastnem upravljanju je potrebna za pravilno delovanje zagonskih datotek (skript) pravica pisanja nad nekaterimi mapami:
Če uporabljate strežnik Windows, zagotovite, da skrbniška mapa omogoča lastniku procesa spletnega strežnika pisanje datotek v ta imenik. Ostale datoteke je mogoče nastaviti samo za branje in izvajanje.
* "/limesurvey/tmp" mapi in njenih podmapah, ki se uporabljajo za uvažanje/nalaganje in morajo biti nastavljene na branje in pisanje na vašem spletnem strežniku.
*mapa upload/ in vse njene podmape prav tako potrebujejo pravico ''branja in pisanja'' na vašem spletnem strežniku, če želite omogočiti nalaganje slikam in medijskim datotekam.
* vse ostale mape in datoteke so lahko nastavljeno na pravico ''samo za branje''


<div class="simplebox">[[File:help.png]] '''Hint:'''
==Ostale varnostne zadeve==
* v odvisnosti od nastavitev vašega spletnega strežnika boste morali spremeniti pravico nad zapisljivimi mapami z ukazom ''chmode'' na 755 ali 777, da bodo postale zapisljive za spletni strežnik. Najprej poskušajte z 755 in če to ne bo delovalo 'povišajte' na 777.
 
* prav tako lahko poskušate odstraniti pravico branja nad datoteko  config.php za ostale uporabnike z nastavitvijo pravice na 750 in če ne bo delovalo 'povišajte' na 755.</div>
Sledijo samo priporočila. LimeSurvey je na splošno zelo varen brez teh dodatnih ukrepov. Če pa zbirate izjemno občutljive podatke, vam lahko pomaga malo dodatne varnosti:


==Pravice nad datotekami v okolju Windows==
===Uporaba SSL===
Na splošno priporočamo uporabo SSL za občutljive anketne podatke. SSL običajno omogočite tako, da pravilno konfigurirate spletni strežnik in uporabite potrdilo SSQL. Če ste omogočili SSL, bi morali SSL ves čas uveljaviti v [[Global_settings|globalnih nastavitvah]] LimeSurvey. Poleg tega lahko nastavite samo uporabo 'varnih' piškotkov, tako da uredite [[Optional_settings|ustrezno možnost]] v config.php.


Če uporabljate windows strežnik si morate zagotoviti, da skrbniške mape dovoljujejo lastniku procesov spletnega strežnika pisanje v datoteke v tem imeniku, sicer pa lahko imajo vse druge datoteke nastavljeno pravico samo za branje in izvajanje.
=== Dostop do datoteke config.php ===


==Ostale varnostne zadeve==
{{Opozorilo| Application/config/''config.php''' morate posodobiti šele, ko je prva namestitev opravljena in deluje.}}


V nadaljevanju so le priporočila. Na splošno je LimeSurvey zelo varen tudi brez teh dodatnih ukrepov. Če zbirate zelo občutljive podatke, lahko ti manjši dodatni varnostni ukrepi precej pomagajo:
Datoteka /application/config/config.php vsebuje uporabniško ime in geslo za vaš strežnik baze podatkov. To predstavlja določene varnostne težave, zlasti če uporabljate prijavo, ki ima skrbniški dostop na visoki ravni do vaše zbirke podatkov. V primeru napake pri vračanju vsebine te datoteke PHP v brskalnik uporabnika bi lahko prišlo do ogrožanja gesla vaše zbirke podatkov in drugih podrobnosti (vendar je to zelo malo verjeten scenarij). Najboljši način za zmanjšanje tveganja je, da nastavite posebno prijavo, ki ima posebne pravice samo do vaše baze podatkov LimeSurvey.


Datoteka /application/config/config.php vsebuje uporabniško ime in geslo za podatkovno zbirko na vašem strežniku. To predstavlja določena varnostna vprašanja še posebej, če uporabljate vpis, ki ima precej visok nivo skrbniškega dostopa do vaše podatkovne baze. V primeru, da se vračajo na vsebino te PHP datoteke nekatere napake v uporabnikov brskalnik, bi lahko bile ogrožene vaše geslo podatkovne baze in druge podrobnosti (sicer je to zelo malo verjeten scenarij). Najboljši način zmanjšanja tega tveganja je nastavitev predvidenih vpisov, ki imajo določene pravice samo za vašo limesurvey-evo podatkovno zbirko.
Drug način za zaščito teh informacij je lahko, da podatke iz datoteke /application/config/config.php postavite v nespletni imenik, tj. za uporabnike Apache je to imenik nad mapo htdocs (znano tudi kot public_html ali www). . V bistvu boste uporabili config.php, vendar boste imeli v njem eno vrstico – vrstico, ki vključuje datoteko z DEJANSKIMI informacijami o konfiguraciji (npr.<?php return include("/home/hostfolder/safedata/configreal.php"); ?> ). Odstranite vse dejanske informacije o konfiguraciji iz /application/config/config.php in jih prilepite v drugo datoteko (configreal.php), ki je omenjena v datoteki /application/config/''config.php''''. Ta druga datoteka mora biti v imeniku, ki ni spletni. Nato /application/config/config.php ne bo vseboval gesel baze podatkov itd. - samo ime datoteke, ki '''NE''' vsebuje informacije o bazi podatkov.  


Drugi način za zavarovanje teh informacij je lahko prestavitev določenih podatkoviz datoteke /application/config/config.php file v mapo, ki ni v spletnem imeniku. Za Apache uporabnike je ta imenik znotraj mape htdocs (oziroma public_html ali www). Tako boste uporabljali datoteko config.php, vendar boste imeli v njej eno vrstico, ki vključuje datoteko z dejanskimi informacijami o nastavitvah (primer: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Iz datoteke  /application/config/config.php odstranite vse aktualne informacije o nastavitvah in jih prilepite v drugo datoteko (configreal.php), ki je vključena v datoteki /application/config/config.php. Ta datoteka se mora nahajati izven spletnega imenika. V tem primeru datoteka /application/config/config.php ne bo vsebovala gesla podatkovne zbirke itd., pač pa samo ime datoteke, ki vsebuje informacije o podatkovni zbirki. S tem se izognete spremembam vseh drugih datotek vključenih v datoteki /application/config/config.php, glede na to da so še vedno vključene in bodo vsebovale realne informacije o nastavitvah. Boste pa morali urediti datoteko configreal.php in spremeniti naslednje parametre
S tem se izognete spreminjanju vseh drugih datotek, ki vključujejo /application/config/config.php, saj jih config.php 'preusmeri' proti konfiguracijski datoteki, ki se nahaja v nespletnem imeniku, ki vključuje vse dejanske informacije o konfiguraciji . Vendar pa boste morali urediti configreal.php in spremeniti naslednje parametre, da boste za pravilno delovanje uporabljali absolutne poti imenikov:


<syntaxhighlight lang="php" enclose="div">
<syntaxhighlight lang="php">


'basePath' => dirname(dirname('''FILE''')),
'basePath' => dirname(dirname('''FILE''')),
Line 91: Line 107:
</syntaxhighlight>
</syntaxhighlight>


da lahko uporabite absolutno pot do imenika, ki bo pravilno delovala. Primer:
primer:


<syntaxhighlight lang="php" enclose="div">
<syntaxhighlight lang="php">
'basePath' => '/var/www/htdocs/limesurvey',
'basePath' => '/var/www/htdocs/limesurvey',
'runtimePath' => '/var/www/htdocs/limesurvey/tmp/runtime',
'runtimePath' => '/var/www/htdocs/limesurvey/tmp/runtime',
Line 105: Line 121:
</syntaxhighlight>
</syntaxhighlight>


Prav tako ne uporabljajte "admin" uporabnika za privzetega uporabnika. Pojdite v vašo MySQL podatkovno zbirko (ali drugo, če ste namestili LimeSurvey na drugi podatkovni zbirki) in zamenjajte privzeto uporabniško ime "admin" na karkoli drugega, ki vam ustreza (na primer "admin_xyz"). Tako bo veliko težje uganiti novo skrbniško uporabniško ime. Vedite da je to eden od dveh podatkov, ki ju vsiljivci potrebujejo za pridobitev dostopa. Drugi podatke je skrbniško geslo, zato ga izberite zelo pazljivo.
Prav tako '''ne uporabljajte "admin" kot privzetega uporabnika'''. Pojdite v svojo bazo podatkov MySQL (ali tisto, v katero ste namestili LimeSurvey) in spremenite privzeto uporabniško ime "admin" v tisto, kar želite (npr. "admin_xyz"). Zdaj bo veliko težje uganiti administratorjevo novo uporabniško ime. Ne pozabite, da je to ena od dveh spremenljivk, ki ju vsiljivci lahko uporabijo za dostop. Skrbniško geslo je druga spremenljivka. Zato izberite oba zelo previdno.
 
 
=== Politika varnosti vsebine (CSP) ===
 
'''OPOZORILO - Tukaj navedeni CSP je samo primer in ni namenjen dobesedni uporabi. Zamišljeno je kot izhodišče in MORATE ga prilagoditi svojim potrebam ter temeljito preizkusiti.'''
<nowiki><IfModule mod_headers.c>
Glava vedno nastavi 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)|aplikacija\/pdf|xml#i "
</IfModule></nowiki>

Latest revision as of 10:06, 13 December 2023

Splošno

LimeSurvey se zanaša na lastno varnost, ki je privzeto aktivirana. Avtorji te programske opreme ne prevzemajo nobene odgovornosti in ne dajejo nikakršnih trditev v zvezi z ustreznostjo ali stopnjo varnosti te programske opreme. Vendar varnostna vprašanja jemljemo zelo resno in se hitro odzovemo. Zato, če poznate kakršne koli varnostne težave znotraj LimeSurvey, nam to sporočite tako, da nam pošljete e-pošto na info@limesurvey.org ali odprete poročilo o napaki v našem [http:// bugs.limesurvey.org bug tracker] (prosimo, označite kot zasebno).

Omejitev spletnega strežnika

Če uporabljate apache, LimeSurvey vključi drugo datoteko htaccess za omejitev. preverite, ali ste dovolj vključili htaccess z AllowOverride .

Z drugim spletnim strežnikom ali če želite uporabiti AllowOverride None : morate

  • (možnost) onemogoči dostop do vseh datotek v aplikacijah, zaščitenih, ogrodjih in temah/*/views
  • onemogoči dostop do datotek, ki jih naloži uporabnik /upload/surveys/.*/fu_[a-z0-9]
  • (možnost) onemogoči dostop do izvedljive datoteke v imeniku za nalaganje

Vzorec za nginx najdete na Splošna pogosta vprašanja

Pravice na Linux-ovih datotekah

Če uporabljate strežnik Linux, je za zaščito vaše namestitve LimeSurey potrebna ustrezna nastavitev dovoljenj za datoteke.

Osnovna dejstva o pravicah na Linux/*nix datotekah

Linux/*nix operacijski sistem je večuporabniški. To pomeni da poleg vašega osebnega računa lahko na sistemu obstajajo še drugi uporabniški računi in je potrebno paziti, kakšne pravice dajate ostalim uporabnikom.

Datoteka:help.png Namig: nastavitev dovoljenj za datoteke je še posebej pomembna za zaščito konfiguracijskih datotek, ki vsebujejo kritične podatke, kot so gesla.

Upoštevajte, da bo 'root' računu vedno odobreno dovoljenje za dostop do vaših datotek (ne glede na to, katera dovoljenja za datoteke ste nastavili), saj je superskrbniški uporabnik.

Tudi spletni strežnik (ki poganja LimeSurvey) deluje pod dano identiteto (uporabnik). V Linuxu je to običajno 'www', 'www-data' (v Debian/Ubuntu), 'apache' ali 'nobody' uporabnik. Vendar nekatera podjetja za gostovanje uporabljajo sisteme (kot je suexec), ki omogočajo izvajanje skriptov LimeSurvey z vašim osebnim uporabnikom. Seveda mora imeti uporabnik spletnega strežnika pravico do branja datotek LimeSurvey. Vendar pa mora uporabnik spletnega strežnika omogočati zapisovanje le v majhno podmnožico podimenikov LimeSurvey.

Datoteka:help.png 'Namig: zelo dragoceno je preklic dovoljenja za pisanje za uporabnika spletnega strežnika v te podimenike LimeSurvey, ki tega ne potrebujejo. Dejansko, tudi če se odkrije ranljivost LimeSurvey, bodo glavne datoteke še vedno zaščitene pred nedovoljenimi spremembami zahvaljujoč dovoljenjem datotečnega sistema.

Nastavljanje pravic nad datotekami na Linux-sistemu v lastnem upravljanju

Če upravljate svoj spletni strežnik in konfiguracijo operacijskega sistema (ste lastnik fizičnega strežnika ali najemate virtualni strežnik, do katerega imate korenski dostop), lahko upoštevate naslednja priporočila spodaj.

Najprej lahko nastavite lastnika in skupino svojih datotek LimeSurvey, tako da bo olajšana nastavitev dovoljenj za datoteke. Možna strategija je, da lastnika datotek LimeSurvey nastavite na svoje osebno uporabniško ime, skupino datotek LimeSurvey pa na skupino spletnega strežnika. Običajno ta skupina spletnih strežnikov vsebuje samo račun spletnega strežnika (in morda še en račun spletnega skrbnika). Na primer, če je vaše uporabniško ime 'myaccount' in je uporabnik spletnega strežnika 'apache' v skupini 'apache', potem lahko iz lupinskega dostopa uporabite naslednji ukaz: $ chown -R myaccount:apache limesurvey/ . Nato nastavite dovoljenja za datoteke in podimenike.

Za pravilno delovanje skripta je potreben dostop za pisanje v nekatere imenike:

  • Imenik /limesurvey/application/config zahteva Read & Write za shranjevanje konfiguracijskih nastavitev aplikacije
  • Imenik /limesurvey/ Imenik tmp in njegovi podimeniki se uporabljajo za uvoz/nalaganje in morajo biti za vaš spletni strežnik nastavljeni na »Branje in pisanje«
  • Imenik za nalaganje in vsi njegovi podimeniki morajo imeti tudi nastavljeno »Branje & Write dovoljenja, da omogočite nalaganje slik in medijskih datotek
  • Vse druge imenike in datoteke lahko nastavite na Samo za branje
Datoteka:help.png Namig: ob predpostavki, da ste upoštevali zgornja priporočila za lastnika/skupino, lahko te nastavitve uporabite z naslednjimi ukazi:

$ 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

Nastavitev dovoljenj za datoteke na gostujočem spletnem strežniku

Glede na težavnost standardnega postopka za zaščito spletne aplikacije v gostujočem okolju je to precej težko, ker se gostujoča okolja razlikujejo v mnogih pogledih.

V primeru upravljanega strežnika potrebuje strežnik dostop za pisanje v nekatere imenike, da lahko skript pravilno deluje:

  • Imenik /limesurvey/tmp se uporablja za uvoz/nalaganje in mora biti nastavljen na Branje in pisanje ' za vaš spletni strežnik
  • Imenik za nalaganje in vsi njegovi podimeniki morajo imeti tudi »Branje in pisanje« za vaš spletni strežnik, da omogočite nalaganje slik in predstavnostnih datotek
  • Drugi imeniki in datoteke morajo biti nastavljene na »Samo za branje«
Datoteka:help.png Namig:
  • Odvisno od konfiguracije vašega spletnega strežnika boste morali pravice za zapisljive mape spremeniti v chmod na 755 ali 777, da omogočite pisanje v spletu strežnik. Najprej poskusite 755, če ne deluje, 'nadgradite' na 777
  • Prav tako lahko poskusite odstraniti bralni dostop drugih uporabnikov do config.php tako, da nastavite dovoljenja te datoteke na 750 - če ne deluje, 'nadgradite' ' do 755

Pravice nad datotekami v okolju Windows

Če uporabljate strežnik Windows, zagotovite, da skrbniška mapa omogoča lastniku procesa spletnega strežnika pisanje datotek v ta imenik. Ostale datoteke je mogoče nastaviti samo za branje in izvajanje.

Ostale varnostne zadeve

Sledijo samo priporočila. LimeSurvey je na splošno zelo varen brez teh dodatnih ukrepov. Če pa zbirate izjemno občutljive podatke, vam lahko pomaga malo dodatne varnosti:

Uporaba SSL

Na splošno priporočamo uporabo SSL za občutljive anketne podatke. SSL običajno omogočite tako, da pravilno konfigurirate spletni strežnik in uporabite potrdilo SSQL. Če ste omogočili SSL, bi morali SSL ves čas uveljaviti v globalnih nastavitvah LimeSurvey. Poleg tega lahko nastavite samo uporabo 'varnih' piškotkov, tako da uredite ustrezno možnost v config.php.

Dostop do datoteke config.php

Template:Opozorilo

Datoteka /application/config/config.php vsebuje uporabniško ime in geslo za vaš strežnik baze podatkov. To predstavlja določene varnostne težave, zlasti če uporabljate prijavo, ki ima skrbniški dostop na visoki ravni do vaše zbirke podatkov. V primeru napake pri vračanju vsebine te datoteke PHP v brskalnik uporabnika bi lahko prišlo do ogrožanja gesla vaše zbirke podatkov in drugih podrobnosti (vendar je to zelo malo verjeten scenarij). Najboljši način za zmanjšanje tveganja je, da nastavite posebno prijavo, ki ima posebne pravice samo do vaše baze podatkov LimeSurvey.

Drug način za zaščito teh informacij je lahko, da podatke iz datoteke /application/config/config.php postavite v nespletni imenik, tj. za uporabnike Apache je to imenik nad mapo htdocs (znano tudi kot public_html ali www). . V bistvu boste uporabili config.php, vendar boste imeli v njem eno vrstico – vrstico, ki vključuje datoteko z DEJANSKIMI informacijami o konfiguraciji (npr.<?php return include("/home/hostfolder/safedata/configreal.php"); ?> ). Odstranite vse dejanske informacije o konfiguraciji iz /application/config/config.php in jih prilepite v drugo datoteko (configreal.php), ki je omenjena v datoteki /application/config/config.php''. Ta druga datoteka mora biti v imeniku, ki ni spletni. Nato /application/config/config.php ne bo vseboval gesel baze podatkov itd. - samo ime datoteke, ki NE vsebuje informacije o bazi podatkov.

S tem se izognete spreminjanju vseh drugih datotek, ki vključujejo /application/config/config.php, saj jih config.php 'preusmeri' proti konfiguracijski datoteki, ki se nahaja v nespletnem imeniku, ki vključuje vse dejanske informacije o konfiguraciji . Vendar pa boste morali urediti configreal.php in spremeniti naslednje parametre, da boste za pravilno delovanje uporabljali absolutne poti imenikov:

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

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

primer:

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

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

Prav tako ne uporabljajte "admin" kot privzetega uporabnika. Pojdite v svojo bazo podatkov MySQL (ali tisto, v katero ste namestili LimeSurvey) in spremenite privzeto uporabniško ime "admin" v tisto, kar želite (npr. "admin_xyz"). Zdaj bo veliko težje uganiti administratorjevo novo uporabniško ime. Ne pozabite, da je to ena od dveh spremenljivk, ki ju vsiljivci lahko uporabijo za dostop. Skrbniško geslo je druga spremenljivka. Zato izberite oba zelo previdno.


Politika varnosti vsebine (CSP)

OPOZORILO - Tukaj navedeni CSP je samo primer in ni namenjen dobesedni uporabi. Zamišljeno je kot izhodišče in MORATE ga prilagoditi svojim potrebam ter temeljito preizkusiti. <IfModule mod_headers.c> Glava vedno nastavi 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)|aplikacija\/pdf|xml#i " </IfModule>