x

Capítulos principais

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Guia de início rápido - LimeSurvey 3.0+
  3. Instalação - LimeSurvey CE
  4. Como criar um bom inquérito (guia)
  5. Começando
  6. Administração do LimeSurvey
  7. Inquéritos - introdução
  8. Configurações do inquérito
  9. Menu de inquérito
  10. Estrutura do inquérito
  11. Perguntas - introdução
  12. Grupos de perguntas - introdução
  13. Pesquisas - gestão
  14. Opções da barra de ferramentas do inquérito
  15. Inquérito multilingue
  16. ExpressionScript Engine - Guia de início rápido
  17. Recursos não categorizados e avançados
  18. Perguntas frequentes gerais
  19. Resolução de problemas
  20. Soluções alternativas
  21. Licença
  22. Registo de alterações das versões
  23. Plugins
 Actions

Dicas de segurança da instalação

From LimeSurvey Manual

Esta página pode ter sido traduzida automaticamente e conter erros. Ver o original em inglês · Melhorar esta tradução
This page is a translated version of the page Installation security hints and the translation is 100% complete.

Geral

Tenha em atenção que levamos as questões de segurança muito a sério e reagimos rapidamente. Por isso, se tiver conhecimento de algum problema de segurança no LimeSurvey, informe-nos abrindo um relatório de erro no nosso sistema de registo de erros (marque o erro com a gravidade ou categoria 'segurança').

Para mais detalhes, consulte a nossa política de segurança para comunicar problemas/vulnerabilidades de segurança.

Restrições do servidor web

Se utilizar o Apache, o LimeSurvey inclui diferentes ficheiros htaccess para restrição. Verifique se permite a utilização dos ficheiros htaccess incluídos através de AllowOverride.

Com outro servidor web ou se pretender utilizar AllowOverride None, deve:

  • (opcional) desativar o acesso a todos os ficheiros em application, protected, framework e themes/*/views
  • desativar o acesso aos ficheiros carregados pelos utilizadores em /upload/surveys/.*/fu_[a-z0-9]
  • (opcional) desativar o acesso a ficheiros executáveis na pasta de carregamento (upload)

Pode pesquisar um exemplo para nginx na nossa FAQ geral

Permissões de ficheiros no Linux

Se utilizar um servidor Linux, é necessário definir as permissões de ficheiros de forma adequada para proteger a sua instalação do LimeSurvey.

Noções básicas sobre permissões de ficheiros no Linux/*nix

Um Sistema Operativo Linux/*nix é multiutilizador. Isto significa que, além da sua conta pessoal, podem existir outras contas de utilizador no sistema e deve ter cuidado com as permissões que atribui a outros utilizadores.

Dica: definir as permissões de ficheiros é especialmente importante para proteger os ficheiros de configuração que contêm dados críticos, como palavras-passe.

Tenha em atenção que a conta 'root' terá sempre permissão para aceder aos seus ficheiros (independentemente das permissões que definir), pois é o super-administrador.

O servidor web (que executa o LimeSurvey) também é executado sob uma determinada identidade (utilizador). No Linux, este é normalmente o utilizador 'www', 'www-data' (no Debian/Ubuntu), 'apache' ou 'nobody'. No entanto, algumas empresas de alojamento utilizam sistemas (como o suexec) que permitem executar os scripts do LimeSurvey com o seu utilizador pessoal. Naturalmente, o utilizador do servidor web deve ter permissão para ler os ficheiros do LimeSurvey. No entanto, apenas um pequeno conjunto de subpastas do LimeSurvey deve poder ser escrito pelo utilizador do servidor web.

Dica: é muito útil revogar a permissão de escrita do utilizador do servidor web nas subpastas do LimeSurvey que não a necessitam. De facto, mesmo que seja descoberta uma vulnerabilidade no LimeSurvey, os ficheiros principais continuarão protegidos contra modificações ilícitas graças às permissões do Sistema de ficheiros.

Definir permissões de ficheiros num sistema Linux gerido por si

Se gere a configuração do seu servidor web e do Sistema Operativo (é o proprietário do servidor físico ou aluga um servidor virtual no qual tem acesso root), pode considerar as recomendações apresentadas a seguir.

Pode começar por definir o proprietário e o grupo dos ficheiros do LimeSurvey, de forma a facilitar a configuração das permissões. Uma estratégia possível é definir como proprietário dos ficheiros do LimeSurvey O seu nome de utilizador e como grupo o grupo do servidor web. Normalmente, este grupo contém apenas a conta do servidor web (e, possivelmente, outra conta de webmaster). Por exemplo, se o seu nome de utilizador for 'myaccount' e o utilizador do servidor web for 'apache', pertencente ao grupo 'apache', pode utilizar o seguinte comando a partir de um acesso shell: $ chown -R myaccount:apache limesurvey/. Em seguida, defina as permissões dos ficheiros e das subpastas.

Para que o script funcione corretamente, é necessário acesso de escrita a algumas pastas:

  • A pasta /limesurvey/application/config requer Leitura e escrita para guardar as definições de configuração da aplicação
  • A pasta /limesurvey/tmp e as suas subpastas são utilizadas para importações/carregamentos e devem ter Leitura e escrita para o seu servidor web
  • A pasta upload/ e todas as suas subpastas também devem ter permissões de Leitura e escrita para permitir o carregamento de imagens e ficheiros multimédia
  • Todas as outras pastas e ficheiros podem ficar definidos como Só de leitura

Definir permissões de ficheiros num servidor web alojado

Dada a dificuldade de um procedimento padrão para proteger uma aplicação web num ambiente alojado, a tarefa é bastante complexa, pois os ambientes alojados diferem em muitos aspetos.

No caso de um servidor gerido, o servidor precisa de acesso de escrita a algumas pastas para que o script funcione corretamente:

  • A pasta /limesurvey/tmp é utilizada para importações/carregamentos e deve ter Leitura e escrita para o seu servidor web
  • A pasta upload/ e todas as suas subpastas também devem ter Leitura e escrita para o seu servidor web, de forma a permitir o carregamento de imagens e ficheiros multimédia
  • As restantes pastas e ficheiros devem ficar definidos como Só de leitura
Dica:
  • Consoante a configuração do seu servidor web, poderá ter de alterar com chmod as permissões das pastas com permissão de escrita para 755 ou 777, para que o servidor web possa escrever nelas. Experimente primeiro 755 e, se não funcionar, 'suba' para 777
  • Também pode tentar eliminar o acesso de leitura de outros utilizadores ao ficheiro config.php, definindo as permissões deste ficheiro para 750 - se não funcionar, 'suba' para 755

Permissões de ficheiros no Windows

Se utilizar um servidor Windows, deve garantir que a pasta admin permite que o proprietário do processo do servidor web escreva ficheiros nesta pasta. Os restantes ficheiros podem ser definidos como só de leitura e execução.

Outras questões de segurança

As recomendações seguintes são apenas sugestões. Em geral, o LimeSurvey é muito seguro sem estas medidas adicionais. No entanto, se recolher dados extremamente sensíveis, um pouco de segurança adicional pode ajudar:

Utilização de SSL

Recomendamos, de um modo geral, a utilização de SSL para dados sensíveis de inquéritos. Normalmente, ativa-se o SSL configurando corretamente o servidor web e utilizando um certificado SSL. Se tiver ativado o SSL, deve forçar a utilização de SSL em permanência a partir das Configurações globais do LimeSurvey. Além disso, pode configurar a utilização apenas de cookies 'seguros', editando a opção respetiva no ficheiro config.php.

O acesso ao ficheiro config.php

  Só deve atualizar application/config/config.php depois de a primeira instalação estar concluída e a funcionar.


O ficheiro /application/config/config.php contém um nome de utilizador e uma senha do seu servidor de base de dados. Isto levanta algumas questões de segurança, em especial se estiver a utilizar uma conta com acesso administrativo de nível elevado à sua base de dados. Caso ocorra algum erro que devolva o conteúdo deste ficheiro PHP ao navegador de um utilizador, a senha da sua base de dados e outros detalhes poderão ficar comprometidos (no entanto, este é um cenário muito improvável). A melhor forma de minimizar o risco é criar uma conta específica, com direitos apenas sobre a base de dados do LimeSurvey.

Outra forma de proteger esta informação pode ser colocar os dados do ficheiro /application/config/config.php numa pasta fora da web, ou seja, para os utilizadores de Apache, a pasta acima da pasta htdocs (também conhecida como public_html ou www). Basicamente, continuará a utilizar o config.php, mas com uma única linha — uma linha que inclui o ficheiro com a informação de configuração REAL (ex: <?php return include("/home/hostfolder/safedata/configreal.php"); ?>). Elimine toda a informação de configuração real de /application/config/config.php e cole-a no outro ficheiro (configreal.php) referido no ficheiro /application/config/config.php. Este outro ficheiro deve estar localizado numa pasta fora da web. Assim, o /application/config/config.php não conterá senhas da base de dados, etc., apenas o nome do ficheiro que CONTÉM os dados da base de dados.

Isto evita ter de alterar todos os outros ficheiros que incluem /application/config/config.php, uma vez que o config.php 'redireciona-os' para o ficheiro de configuração localizado numa pasta fora da web, que contém toda a informação de configuração real.

Além disso, não utilize "admin" nem "administrator" como utilizador predefinido. Aceda à sua base de dados MySQL (ou àquela em que instalou o LimeSurvey) e altere o nome de utilizador predefinido "admin" para o que preferir (ex: "admin_xyz"). Será assim muito mais difícil adivinhar o novo nome de utilizador do administrador. Lembre-se de que esta é uma das duas variáveis que os intrusos podem utilizar para obter acesso. A senha do administrador é a outra variável. Por isso, escolha ambas com extremo cuidado.

Política de Segurança de Conteúdo (CSP)

AVISO - A CSP aqui apresentada é apenas um exemplo e não se destina a ser utilizada tal como está. Serve como ponto de partida e DEVE adaptá-la às suas necessidades e testá-la exaustivamente.

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