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 em funções / recursos do usuário. É claro que li algumas das questões 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á ideia melhorar a segurança da sua instalação do wordpress - por exemplo, proteger o seu wp-config.php - há muitas coisas que você pode e deve fazer. Há uma tonelada de informações por aí como fazer isso. Eu estou no contexto desta questão principalmente sobre meus uploads / downloads.

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

Options All -Indexes

O arquivo .htaccess deve ser colocado dentro da pasta uploads . Mas isso não é realmente protegê-los, apenas dificulta a localização dos arquivos. Além disso, você pode evitar hotlinking , restringindo o acesso com base em referrer - embora isso seja um pouco diferente. Eu pensei em mencioná-lo, 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 tornar esse tipo de postagem particular, 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 um sidenote há muitos plugins por aí que prometem tornar seus arquivos seguros e protegidos, mas muitos deles estão apenas fingindo fazê-lo, algumas das razões estão acima. Estou apenas citando isso porque tenho certeza de que não é conhecido por todos - então, esteja ciente disso.

Objetivo

Minha intenção era poder restringir o acesso a (alguns) uploads e downloads, respectivamente. E para ter certeza de que ninguém indesejado poderia ter acesso a eles, não por acaso ou se esse alguém soubesse o nome do arquivo, os arquivos deveriam ser realmente privados e seguros. Afinal, apenas certas pessoas devem ter acesso sem exceções.

Além disso, não tive necessidade de privatizar todo o site; na verdade, isso seria contraproducente - é usado para fins de apresentação pública. Além disso, eu queria que a solução fosse facilmente utilizável, pela simples razão de que algumas das pessoas que trabalham com ela não são exatamente especialistas em computação, como costuma ser o caso.

Pergunta

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

    
por Nicolai 27.05.2013 / 23:50

1 resposta

8

Por este meio estou respondendo a minha própria pergunta, porque eu encontrei uma solução, mas estou realmente interessado em suas opiniões sobre isso. Ou talvez você tenha uma solução muito melhor, se assim for, eu realmente gostaria de saber sobre isso.

Resultado da pesquisa

Meus resultados de pesquisa foram:
    1. obtenha os arquivos fora da raiz do documento, www folder;     2. proibir qualquer acesso direto à pasta que contém os arquivos;     3. permitir que um script manipule os pedidos para os arquivos; As fontes para esses pontos são - pelo menos na maior parte - incluídas na minha pergunta.

Solução

  1. Eu instalei o plugin » wp-downloadmanager «
    • uma pasta chamada files será criada dentro de wp-content no processo;
  2. Eu adicionei um arquivo .htaccess à nova pasta files :
    • conteúdo do .htaccess :
      Options All -Indexes e Order Deny,Allow e Deny from all
  3. Eu 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 plug-in:
    • existe uma opção chamada allowed to download ;
    • que permite restringir o acesso com base na função / capacidade do usuário;
  5. fiz alguns testes:
    • sem acesso direto aos arquivos - não na barra de endereços ou no wget;
    • downloads públicos podem ser acessados por meio dos permalinks - eu escolho »agradáveis permalinks: sim« e »download url: arquivo id« no painel de opções - addressbar / wget também está funcionando;
    • downloads protegidos e restritos só são acessíveis se você estiver logado como usuário com a função / recursos corretos;

Pensamentos conclusivos

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

Notas suplementares

  • é absolutamente necessário alterar o download method para output file
  • e é claro que é obrigatório que o arquivo .htaccess esteja em vigor

  • para verificar se o plug-in assume o papel do script, consulte wp-downloadmanger.php - sobre as linhas 207 a 227 (versão 1.6.1); isto significa um ponto complementar à informação ligada

por Nicolai 30.05.2013 / 01:37