Actions

Suggerimenti per la sicurezza dell'installazione

From LimeSurvey Manual

This page is a translated version of the page Installation security hints and the translation is 100% complete.

Generale

LimeSurvey fa affidamento sulla propria sicurezza, che è attivata per impostazione predefinita. Gli autori di questo software non si assumono alcuna responsabilità e non rivendicano l'adeguatezza o il livello di sicurezza di questo software. Tuttavia, prendiamo molto sul serio i problemi di sicurezza e reagiamo rapidamente. Pertanto, se sei a conoscenza di eventuali problemi di sicurezza all'interno di LimeSurvey, comunicacelo inviandoci un'e-mail a info@limesurvey.org o aprendo una segnalazione di bug nel nostro [http:// bugs.limesurvey.org bug tracker] (contrassegnalo come privato).

Limitazione del server Web

Se usi apache, LimeSurvey include diversi file htaccess per la restrizione. verifica di aver consentito htaccess incluso con AllowOverride .

Con altri server web o se vuoi usare AllowOverride None : devi

  • (opzione) disabilita l'accesso a tutti i file in applicazione, protetti, framework e temi/*/views
  • disabilita l'accesso al file caricato dall'utente /upload/surveys/.*/fu_[a-z0-9]!N !* (opzione) disabilita l'accesso al file eseguibile nella directory di caricamento

Puoi trovare un esempio per nginx sul nostro Faq generali

Autorizzazioni file Linux

Se utilizzi un server Linux, è necessario impostare i permessi dei file di conseguenza per proteggere la tua installazione di LimeSurey.

Nozioni di base sui permessi dei file Linux/*nix

Un sistema operativo Linux/*nix è multiutente. Ciò significa che, oltre al tuo account personale, potrebbero esistere altri account utente sul sistema e dovresti occuparti di quali autorizzazioni concedi ad altri utenti.

Suggerimento: l'impostazione dei permessi dei file è particolarmente importante per proteggere i file di configurazione che contengono dati critici come le password.

Ricorda che l'account 'root' avrà sempre il permesso di accedere ai tuoi file (indipendentemente dai permessi impostati) in quanto è l'utente super amministratore.

Anche il server Web (che esegue LimeSurvey) è in esecuzione con una determinata identità (utente). Su Linux, di solito è l'utente "www", "www-data" (su Debian/Ubuntu), "apache" o "nobody". Tuttavia, alcune società di hosting utilizzano sistemi (come suexec) che consentono di eseguire script LimeSurvey con il tuo utente personale. Naturalmente, l'utente del server web deve avere il diritto di leggere i file di LimeSurvey. Tuttavia, solo un piccolo sottoinsieme delle sottodirectory di LimeSurvey deve essere scrivibile dall'utente del server web.

Suggerimento: è molto utile revocare il permesso di scrittura per l'utente del server web a queste sottodirectory di LimeSurvey che non lo richiedono. Infatti, anche se venisse scoperta una vulnerabilità di LimeSurvey, i file principali saranno comunque protetti da modifiche illecite grazie ai permessi del file system.

Impostazione dei permessi dei file su un sistema Linux autogestito

Se stai gestendo la configurazione del tuo server web e del sistema operativo (sei il proprietario del server fisico o stai noleggiando un server virtuale su cui hai accesso root), puoi prendere in considerazione i seguenti consigli dal basso.

Puoi prima impostare il proprietario e il gruppo dei tuoi file LimeSurvey in modo da facilitare la configurazione dei permessi dei file. Una possibile strategia è impostare il proprietario dei file LimeSurvey sul tuo nome utente personale e il gruppo dei file LimeSurvey sul gruppo del server web. Di solito, questo gruppo di server web contiene solo l'account del server web (ed eventualmente un altro account webmaster). Ad esempio, se il tuo nome utente è 'myaccount' e l'utente del server web è 'apache' nel gruppo 'apache', allora, da un accesso shell, puoi utilizzare il seguente comando: $ chown -R myaccount:apache limesurvey/ . Successivamente, impostare le autorizzazioni per file e sottodirectory.

Affinché lo script funzioni correttamente, è necessario l'accesso in scrittura ad alcune directory:

  • La directory /limesurvey/application/config richiede Lettura e scrittura per salvare le impostazioni di configurazione dell'applicazione
  • La /limesurvey/ tmp e le sue sottodirectory sono utilizzate per importazioni/caricamenti e devono essere impostate su Leggi e scrivi per il tuo server web
  • Anche la directory/upload e tutte le sue sottodirectory devono avere impostato Leggi Autorizzazioni in & scrittura per abilitare il caricamento di immagini e file multimediali
  • Tutte le altre directory e file possono essere impostate su Sola lettura
Suggerimento: supponendo che tu abbia seguito i consigli di cui sopra sul proprietario/gruppo, queste impostazioni possono essere applicate dai seguenti comandi:

$ 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

Impostazione dei permessi dei file su un server web ospitato

Data la difficoltà di una procedura standard per proteggere un'applicazione Web su un ambiente ospitato, è piuttosto difficile perché gli ambienti ospitati differiscono in molti modi.

Nel caso del server gestito, il server necessita dell'accesso in scrittura ad alcune directory affinché lo script funzioni correttamente:

  • La directory /limesurvey/tmp viene utilizzata per le importazioni/i caricamenti e deve essere impostata su "Lettura e scrittura" ' per il tuo server web
  • La directory/upload e tutte le sue sottodirectory devono avere anche Lettura e scrittura per il tuo server web per consentire il caricamento di immagini e file multimediali
  • Le altre directory e i file devono essere impostati su Sola lettura
Suggerimento:
  • A seconda della configurazione del tuo server web, dovrai modificare i diritti sulle cartelle scrivibili a 755 o 777 per renderle scrivibili per il web server. Prova prima 755, se non funziona, 'aggiorna' a 777
  • Puoi anche provare a rimuovere l'accesso in lettura di altri utenti a config.php impostando i permessi di questo file a 750 - se non funziona, 'aggiorna ' a 755

Autorizzazioni file di Windows

Se si utilizza un server Windows, è necessario assicurarsi che la cartella admin consenta al proprietario del processo del server Web di scrivere file in questa directory, il resto dei file può essere impostato in sola lettura ed eseguito.

Altri problemi di sicurezza

Quelle che seguono sono solo raccomandazioni. LimeSurvey in generale è molto sicuro senza queste misure aggiuntive. Se tuttavia raccogli dati estremamente sensibili, un po' di sicurezza in più può aiutarti:

Utilizzo di SSL

In genere consigliamo l'utilizzo di SSL per i dati sensibili dei sondaggi. Di solito abiliti SSL configurando correttamente il tuo server web e utilizzando un certificato SSQL. Se hai abilitato SSL, dovresti sempre applicare SSL dalle impostazioni globali di LimeSurvey. Inoltre, puoi impostare l'utilizzo dei cookie 'sicuri' solo modificando le rispettiva opzione in config.php.

L'accesso al file config.php

Template:Avviso

Il file /application/config/config.php contiene un nome utente e una password per il server del database. Ciò pone alcuni problemi di sicurezza, in particolare se si utilizza un accesso con accesso amministrativo di alto livello al database. In caso di errore durante la restituzione del contenuto di questo file PHP al browser di un utente, la password del database e altri dettagli potrebbero essere compromessi (tuttavia, si tratta di uno scenario molto improbabile). Il modo migliore per ridurre al minimo il rischio è impostare un accesso specifico che disponga di diritti specifici solo per il tuo database LimeSurvey.

Un altro modo per proteggere queste informazioni può essere quello di mettere le informazioni dal file /application/config/config.php in una directory non web, cioè per gli utenti Apache questa è la directory sopra la cartella htdocs (nota anche come public_html o www) . Fondamentalmente, userai config.php, ma contiene una riga - una riga che include il file con le informazioni di configurazione REALI (es:<?php return include("/home/hostfolder/safedata/configreal.php"); ?> ). Rimuovere tutte le informazioni di configurazione effettive da /application/config/config.php e incollarle nell'altro file (configreal.php) menzionato nel file /application/config/config.php. Questo altro file dovrebbe trovarsi in una directory non web. Quindi, /application/config/config.php non conterrà le password del database ecc. - solo il nome del file che DOES contiene le informazioni del database.

Ciò evita di dover modificare tutti gli altri file che includono /application/config/config.php, poiché config.php li 'reindirizza' verso il file di configurazione che si trova in una directory non web che include tutte le informazioni di configurazione reali . Tuttavia, dovrai modificare configreal.php e modificare i seguenti parametri per utilizzare i percorsi di directory assoluti per funzionare correttamente:

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

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

Esempio:

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

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

Inoltre, non utilizzare "admin" come utente predefinito. Vai al tuo database MySQL (o quello in cui hai installato LimeSurvey) e cambia il nome utente predefinito "admin" con quello che preferisci (es. "admin_xyz"). Ora sarà molto più difficile indovinare il nuovo nome utente dell'amministratore. Ricorda, questa è una delle due variabili che gli intrusi possono utilizzare per ottenere l'accesso. La password dell'amministratore è l'altra variabile. Quindi sceglili entrambi con estrema cautela.


Politica di sicurezza dei contenuti (CSP)

ESCLUSIONE DI RESPONSABILITÀ - Il CSP qui fornito è solo un esempio e non deve essere utilizzato alla lettera. È inteso come punto di partenza e DEVI adattarlo alle tue esigenze e testarlo a fondo. <IfModule mod_headers.c> Intestazione sempre impostata 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-antenati 'self'; upgrade-insecure-requests" "expr=%{CONTENT_TYPE} =~ m#text\/(html|javascript)|application\/pdf|xml#i " </IfModule>