Actions

Installation security hints/sl: Difference between revisions

From LimeSurvey Manual

(Updating to match new version of source page)
(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...")
 
(38 intermediate revisions by 3 users not shown)
Line 4: Line 4:
==Splošno==
==Splošno==


LimeSurvey relies on its own security, which is activated by default. The authors of this software takes no responsibility and makes no claims in relation to the appropriateness or the security level of this software. However, we take security issues very serious and react quickly. Therefore, if you know of any security problems with LimeSurvey, please let us know either by sending us an e-mail at [mailto:info@limesurvey.org info@limesurvey.org] or by opening a bug report in our [http://bugs.limesurvey.org bug tracker] (please mark it as private).
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==


If you are using a Linux server, setting accordingly file permissions is required to secure your LimeSurey installation.
Č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>


'''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.'''
'''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.'''


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 possible the running of 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.
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]] '''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">[[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===


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 can follow the following recommendations from below.
Č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.


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>. Then, set the file and sub-directories permissions.
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.


For the script to work properly, the write access to some directories is needed:
Za pravilno delovanje skripta je potreben dostop za pisanje v nekatere imenike:
*The /limesurvey/application/config directory requires ''Read & Write'' for saving the application configuration settings.
*Imenik /limesurvey/application/config zahteva ''Read & Write'' za shranjevanje konfiguracijskih nastavitev aplikacije
*The '/limesurvey/tmp' directory and its sub-directories are used for imports/uploads and should be set to ''Read & Write'' for your web server.
*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«
*The upload/directory and all its sub-directories must also have set ''Read & Write'' permissions in order to enable pictures and media files upload.
*Imenik za nalaganje in vsi njegovi podimeniki morajo imeti tudi nastavljeno »Branje & Write'' dovoljenja, da omogočite nalaganje slik in medijskih datotek
* All other directories and files can be set to ''Read Only''.
* Vse druge imenike in datoteke lahko nastavite na ''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:
<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:


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


===Setting file permissions on a hosted web server===
===Nastavitev dovoljenj za datoteke na gostujočem spletnem strežniku===


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.
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.


In the managed server case, the server needs write access to some directories in order for the script to work properly:
V primeru upravljanega strežnika potrebuje strežnik dostop za pisanje v nekatere imenike, da lahko skript pravilno deluje:
*The "/limesurvey/tmp" directory is used for imports/uploads and should be set to ''Read & Write'' for your web server.
*Imenik /limesurvey/tmp se uporablja za uvoz/nalaganje in mora biti nastavljen na ''Branje in pisanje'' ' za vaš spletni strežnik
*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.
*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
* The other directories and files should be set to ''Read Only''.
* Drugi imeniki in datoteke morajo biti nastavljene na »Samo za branje«


<div class="simplebox">[[File:help.png]] '''Hint:'''
<div class="simplebox">[[Datoteka:help.png]] '''Namig:'''
* 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.
* 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
* 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>
* 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>


==Pravice nad datotekami v okolju Windows==
==Pravice nad datotekami v okolju 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.
Č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==
==Ostale varnostne zadeve==


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:
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:


===SSL usage===
===Uporaba 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.
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.


=== The access to the config.php file ===
=== Dostop do datoteke config.php ===


{{Alert| You must update application/config/'''config.php''' only after the first installation is done and it works.}}  
{{Opozorilo| Application/config/''config.php''' morate posodobiti šele, ko je prva namestitev opravljena in deluje.}}  


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.
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.


Another way to secure this information can be to put the certain 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.  
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.  


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 that 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:
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 95: Line 107:
</syntaxhighlight>
</syntaxhighlight>


Example:
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 109: Line 121:
</syntaxhighlight>
</syntaxhighlight>


Also, '''don't use "admin" as the default user'''. Go to your MySQL database (or the one in which you installed LimeSurvey on different database) and change default user name "admin" to whatever you prefer (e.g. "admin_xyz"). It will be now much harder to guess 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 care.
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>