Actions

Installationssikkerhedstip

From LimeSurvey Manual

Revision as of 11:15, 2 January 2024 by Maren.fritz (talk | contribs) (Created page with "I tilfældet med administreret server skal serveren skriveadgang til nogle mapper, for at scriptet kan fungere korrekt: *Mappen /limesurvey/tmp bruges til import/upload og bø...")

Generelt

LimeSurvey er afhængig af sin egen sikkerhed, som er aktiveret som standard. Forfatterne af denne software påtager sig intet ansvar og fremsætter ingen krav vedrørende denne softwares passende eller sikkerhedsniveau. Vi tager dog sikkerhedsproblemer meget alvorligt og reagerer hurtigt. Derfor, hvis du kender til sikkerhedsproblemer inden for LimeSurvey, bedes du give os besked enten ved at sende os en e-mail til info@limesurvey.org eller ved at åbne en fejlrapport i vores [http:// bugs.limesurvey.org bug tracker] (mærk det som privat).

Webserverbegrænsning

Hvis du bruger apache, inkluderer LimeSurvey en anden htaccess-fil til begrænsning. bekræft, at du tillader inkluderet htaccess med AllowOverride .

Med en anden webserver eller hvis du vil bruge AllowOverride None : du skal

  • (mulighed) deaktiver adgang til alle filer i applikation, beskyttet, framework og temaer/*/views
  • deaktiver adgang til fil upload af bruger /upload/surveys/.*/fu_[a-z0-9]
  • (valgmulighed) deaktiver adgang til eksekverbar fil i upload-mappen

Du kan finde et eksempel på nginx på vores General Faq

Linux-filtilladelser

Hvis du bruger en Linux-server, er det nødvendigt at indstille filtilladelser i overensstemmelse hermed for at sikre din LimeSurey-installation.

Grundlæggende fakta om Linux/*nix-filtilladelser

Et Linux/*nix-operativsystem er flerbruger. Det betyder, at der udover din personlige konto kan eksistere andre brugerkonti på systemet, og du skal passe på, hvilke tilladelser du giver til andre brugere.

Tip: indstilling af filtilladelser er især vigtig for at sikre konfigurationsfiler, der indeholder vigtige data såsom adgangskoder.

Husk på, at 'root'-kontoen altid vil få tilladelse til at få adgang til dine filer (uanset hvilke filtilladelser du angiver), da det er superadmin-brugeren.

Webserveren (som kører LimeSurvey) kører også under en given identitet (bruger). På Linux er dette normalt 'www', 'www-data' (på Debian/Ubuntu), 'apache' eller 'nobody'-brugeren. Nogle hostingfirmaer bruger dog systemer (såsom suexec), der gør det muligt at køre LimeSurvey-scripts med din personlige bruger. Webserverbrugeren skal naturligvis have ret til at læse LimeSurvey-filer. Det er dog kun en lille delmængde af LimeSurvey-undermapper, der skal kunne skrives af webserverbrugeren.

Tip: det er meget værdifuldt at tilbagekalde skrivetilladelse for webserverbrugeren til disse LimeSurvey-undermapper, som ikke kræver det. Faktisk, selvom en LimeSurvey-sårbarhed kan blive opdaget, vil hovedfilerne stadig være beskyttet mod en ulovlig ændring takket være filsystemets tilladelser.

Indstilling af filtilladelser på et selvadministreret Linux-system

Hvis du administrerer din webserver og operativsystemkonfiguration (du er ejeren af den fysiske server eller lejer en virtuel server, som du har root-adgang på), kan du overveje følgende anbefalinger fra nedenfor.

Du kan først indstille ejeren og gruppen af dine LimeSurvey-filer, så det letter opsætningen af filtilladelser. En mulig strategi er at indstille ejeren af LimeSurvey-filerne til dit personlige brugernavn, og gruppen af LimeSurvey-filerne til webservergruppen. Normalt indeholder denne webservergruppe kun webserverkontoen (og muligvis en anden webmasterkonto). For eksempel, hvis dit brugernavn er 'myaccount' og webserverbrugeren er 'apache' i 'apache'-gruppen, så kan du fra en shell-adgang bruge følgende kommando: $ chown -R myaccount:apache limesurvey/ . Indstil derefter fil- og undermappernes tilladelser.

For at scriptet skal fungere korrekt, kræves skriveadgang til nogle mapper:

  • Mappen /limesurvey/application/config kræver Read & Write for at gemme applikationskonfigurationsindstillingerne
  • /limesurvey/ tmp-biblioteket og dets undermapper bruges til import/uploads og skal være indstillet til Læs og skriv for din webserver
  • Uploaden/biblioteket og alle dets underbiblioteker skal også have indstillet Læs' & Skrive tilladelser for at muliggøre upload af billeder og mediefiler
  • Alle andre mapper og filer kan indstilles til Skrivebeskyttet
Tip: hvis du har fulgt ovenstående anbefalinger om ejer/gruppe, kan disse indstillinger anvendes ved hjælp af følgende kommandoer:

$ 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

Indstilling af filtilladelser på en hostet webserver

Giver vanskeligheden ved en standardprocedure til at sikre en webapplikation på et hostet miljø, er det ret vanskeligt, fordi hostede miljøer er forskellige på mange måder.

I tilfældet med administreret server skal serveren skriveadgang til nogle mapper, for at scriptet kan fungere korrekt:

  • Mappen /limesurvey/tmp bruges til import/upload og bør indstilles til Læs og skriv' ' til din webserver
  • Uploaden/biblioteket og alle dets undermapper skal også have Læs og skriv til din webserver for at muliggøre upload af billeder og mediefiler
  • De andre mapper og filer skal indstilles til Skrivebeskyttet
Hint:
  • 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

  You must update application/config/config.php only after the first installation is done and it works.


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>