solução simples para restringir o acesso a (alguns) uploads / downloads

11

Situação inicial

Para um site que estou configurando, eu estava analisando todo o campo de segurança de uploads / downloads e restringindo o acesso a eles com base nas funções / capacidades do usuário. Claro que li algumas das perguntas anteriores relacionadas ao tópico (geral) aqui, por razões de referência as mais importantes / interessantes que encontrei:

Notas suplementares

Geralmente, não é uma má idéia melhorar ainda mais a segurança da sua instalação do wordpress - por exemplo, protegendo a sua wp-config.php- há muitas coisas que você pode e deve fazer. Há uma tonelada de informações por aí como fazê-lo. Estou no contexto desta pergunta principalmente concernd sobre meus uploads / downloads.

Os uploads do Wordpress não são protegidos, todos podem navegar na uploadspasta, a menos que você a impeça com .htaccess:

Options All -Indexes

O .htaccessarquivo deve ser colocado dentro da uploadspasta. Mas isso realmente não os protege, apenas torna mais difícil encontrar os arquivos. Além disso, você pode impedir hotlinking, restringindo essencialmente o acesso com base em referrer- embora esse seja um pouco diferente, caso eu tenha mencionado isso, não estou mais elaborando, você pode encontrar muitas informações sobre isso.

É claro que tem a possibilidade de tornar as postagens privadas ou criar um tipo de postagem personalizado com arquivos de modelo adequados para torná-la privada, mas isso não protege seus arquivos. O mesmo pode ser dito para agrupar os arquivos em condicionais como is_user_logged_in()ou is_admin().

Em uma nota de rodapé, existem muitos plugins por aí que prometem tornar seus arquivos seguros e protegidos, mas muitos deles apenas fingem fazê-lo, algumas das razões acima. Só estou dizendo isso porque tenho certeza de que isso não é conhecido por todos - então esteja ciente disso.

Objetivo

Minha intenção era restringir o acesso a (alguns) envios e, respectivamente, downloads. E para garantir que ninguém indesejado possa ter acesso a eles, não por acaso ou se alguém souber o nome do arquivo, os arquivos deverão ser realmente privados e seguros. Afinal, apenas certas pessoas devem ter acesso sem exceções.

Além disso, não havia necessidade de privatizar todo o site, o que seria contraproducente - ele é usado para fins de apresentação pública. Além disso, eu queria que a solução fosse facilmente utilizável, pelo simples motivo de que algumas das pessoas que trabalham com ela não são exatamente especialistas em computadores, como costuma ser o caso.

Questão

Daí a questão: existe uma maneira (relativamente) simples de restringir o acesso a (alguns) envios e os respectivos downloads? E como eu fiz, isso significa uma maneira de realmente protegê-los e protegê-los?

Nicolai
fonte
Você deve adicionar sua solução como resposta em vez de incorporá-la à pergunta.
S_ha_dum 27/05
E use letras maiúsculas / minúsculas apropriadas. Lê como um bate-papo ...
kaiser
Obrigado pela crítica construtiva, vou editá-la e reestruturá-la em breve.
Nicolai

Respostas:

8

Estou respondendo à minha própria pergunta, porque encontrei uma solução, mas estou realmente interessado em suas opiniões. Ou talvez você tenha uma solução muito melhor, se sim, eu realmente gostaria aqui.

Resultado da pesquisa

Meus resultados de pesquisa foram:
1. obter os arquivos fora da raiz, wwwpasta do documento ;
2. proibir qualquer acesso direto à pasta que contém os arquivos;
3. deixe um script manipular as solicitações dos arquivos;
As fontes para esses pontos estão - pelo menos na maior parte - incluídas na minha pergunta.

Solução

  1. Eu instalei o plugin » wp-downloadmanager «
    • uma pasta chamada filesserá criada dentro wp-contentdo processo;
  2. Adicionei um .htaccessarquivo à nova filespasta:
    • conteúdo do .htaccess:
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. Mudei uma opção importante do plugin:
    • a opção que quero dizer é download method;
    • Eu mudei para output file;
  4. Eu adicionei alguns arquivos na interface do plugin:
    • existe uma opção chamada allowed to download;
    • que permite restringir o acesso com base na função / capacidade do usuário;
  5. Eu fiz alguns testes:
    • sem acesso direto aos arquivos - não através da barra de endereços ou do wget;
    • downloads públicos podem ser alcançados através de seus links permanentes - eu escolho »links permanentes agradáveis: sim« e »download url: file id« no painel de opções - a barra de endereços / wget também está funcionando;
    • downloads protegidos e restritos só são acessíveis se você estiver conectado como usuário com a função / capacidade corretas;

Pensamentos finais

Estou pensando que a solução segue os resultados da pesquisa. Além de colocar os arquivos do lado de fora. Mas restringir o acesso a / proteger o diretório e permitir que um script lide com solicitações de arquivo é preenchido. A restrição de acesso é tratada pelo .htaccesse, neste caso, o script é o plugin wp-downloadmanger.

Notas suplementares

  • é absolutamente necessário mudar download methodparaoutput file
  • e é claro que é necessário que o .htaccessarquivo esteja no lugar

  • para verificar se o plug-in assume o papel do script, dê uma olhada nas wp-downloadmanger.phplinhas 207 a 227 (versão 1.6.1); isso significa que é um ponto complementar à informação vinculada

Nicolai
fonte