Suporte » Plugins » Bloquear download de arquivo do site para usuário não logado

  • Olá.

    Tenho um site wordpress e gostaria de saber como faço para bloquear que usuários não logados consigam baixar meus arquivos da pasta wp-content/uploads/2016/arquivo.extensao

    Os usuários logados podem ver os arquivos e baixá-los, porém quem não estiver logado não.

    Atualmente digitando no navegador, não estando logado, o link meusite.com/wp-content/uploads/2016/arquivo.extensao é possível baixá-lo. É isto que quero evitar.

Visualizando 1 resposta (de um total de 1)
  • Moderador Leo Baiano

    (@leobaiano)

    Uma das formas que conheço para bloquear o download de arquivos, diretamente, é redirecionar o acesso a estes arquivos, através do .htaccess, para um arquivo .php e neste PHP você verifica se o usuário está logado e caso sim imprimi o arquivo com o cabeçalho correto e o download vai iniciar, se não estiver logado você redireciona para uma página de acesso negado, por exemplo.

    Agora seguinte, se você for fazer isso sugiro que utilize um outro diretório ou defina as extensões de arquivos que devem ser redirecionadas para evitar que as imagens dos posts deixem de aparecer para usuários não logados.

    Redirecionando o acesso a arquivos .pdf, via .htaccess, para o arquivo controle-download.php

    RewriteEngine On
    RewriteRule ^(.+)\.pdf$ controle-download.php

    Ai no controle-downlaod.php você vai verificar se o usuário está logado, se ele estiver:

    // abri o arquivo com permissão de leitura
    $fp = fopen( $arquivo, 'r' );
    
    // armazena o conteúdo dele em uma variavel
    $buffer = fread( $fp, filesize( $arquivo ) );
    
    // fecha o arquivo
    fclose( $fp );
    
    // envia o cabeçalho de acordo com o tipo do arquivo
    header( 'Content-type: application/pdf' );
    
    // libera o arquivo no navegador
    print $buffer;

    Perceba que estou abstraindo boa parte do código, só escrevi o suficiente para exemplificar uma forma de fazer, então copiar e colar o código exatamente como está ai em cima não é a solução completa, você precisa ajudar para sua necessidade, checar se o usuário está logado, definir as extensões e etc…

Visualizando 1 resposta (de um total de 1)
  • O tópico ‘Bloquear download de arquivo do site para usuário não logado’ está fechado para novas respostas.