Abordado neste artigo:
O MemberPress tem alguns recursos poderosos para ajudá-lo a proteger arquivos estáticos. A proteção de arquivos do MemberPress funciona no nível do servidor Web, o que proporciona proteção absoluta de cada arquivo. Por exemplo, mesmo que uma pessoa sem acesso a um arquivo consiga, de alguma forma, obter um link direto para ele, o MemberPress a interromperá e pedirá que ela se registre ou faça login (se já estiver registrada) antes de poder fazer o download do arquivo.
Que tipos de arquivos o MemberPress pode proteger?
O MemberPress pode proteger qualquer arquivo que não seja necessário para o funcionamento adequado de seu site.
Portanto, o MemberPress pode
somente proteger os seguintes tipos de arquivos:
'zip','gz','tar','rar','doc','docx','xls','xlsx','xlsm','pdf','mp4','m4v','mp3','ts','key','m3u8'
Se quiser proteger qualquer tipo de arquivo que não esteja listado acima, recomendamos apenas compactá-los e proteger um único arquivo .zip.
Além disso, você pode adicionar algum código personalizado ao arquivo functions.php do seu tema, se tiver um, ou a um plug-in, o
Código WPC (consulte este artigo para obter detalhes: Como adicionar trechos de código personalizados no WPCode). Aqui está um exemplo desse código:
function add_types_protectable($types, $rules) { $types[] = 'csv'; return $types; } add_filter('mepr_rewrite_rules_protect_types', 'add_types_protectable', 11, 2);
Depois de adicionar esse código personalizado, você precisará atualizar seus permalinks do WordPress acessando o Painel do WordPress > Configurações > Permalinks > e simplesmente clicando no botão "Salvar alterações" na parte inferior da página.
Proteção de um único arquivo
Se você tiver um arquivo para proteger, veja como fazer isso:
- Carregue o arquivo usando o Media Uploader do WordPress.
- Crie uma Custom URI Rule para proteger o arquivo.
Digamos que o arquivo que você carregou tinha este URL:
http://example.com/wp-content/uploads/2015/10/report.pdf
A regra que você criaria para esse arquivo seria um tipo de URI personalizado apontando apenas para o caminho (parte após
http://example.com) para o arquivo. Assim, na caixa de texto dessa regra, você digitaria o seguinte:
/wp-content/uploads/2014/12/report.pdf
Embora esse seja um processo relativamente simples para um pequeno número de arquivos, ele pode se tornar demorado se for aplicado a um número maior de arquivos. Portanto, vamos ver como você pode criar uma regra para proteger vários arquivos.
Vários arquivos
Agora, digamos que você tenha 10 arquivos e queira que o mesmo nível de associação tenha acesso a cada um deles.
A ideia aqui é colocar cada arquivo em uma pasta especial com o FTP (recomendado) ou certificar-se de que cada arquivo carregado por meio do Media Uploader tenha um prefixo comum (não recomendado, a menos que o FTP não seja uma opção).
Embora não recomendemos a proteção de vários arquivos carregados usando o Media Uploader do WordPress, entendemos que pode haver ocasiões em que você queira/precise fazer isso. Portanto, se você carregar esses arquivos por meio do Media Uploader, eles terão os seguintes URLs:
http://example.com/wp-content/uploads/2015/10/bronze_report.pdf http://example.com/wp-content/uploads/2015/10/bronze_report.doc http://example.com/wp-content/uploads/2015/10/bronze_report.docx http://example.com/wp-content/uploads/2015/10/bronze_analysis.pdf http://example.com/wp-content/uploads/2015/10/bronze_analysis.doc http://example.com/wp-content/uploads/2015/10/bronze_analysis.docx http://example.com/wp-content/uploads/2015/10/bronze_groupings.pdf http://example.com/wp-content/uploads/2015/10/bronze_groupings.doc http://example.com/wp-content/uploads/2015/10/bronze_groupings.docx http://example.com/wp-content/uploads/2015/10/bronze_archive.zip
Agora, tudo o que você precisa fazer é criar uma regra do tipo Custom URI com esse caminho:
/wp-content/uploads/2015/10/bronze_
Isso protegerá qualquer arquivo na pasta /wp-content/uploads/2015/10/ que tenha um nome que comece com "bronze_".
Vários arquivos com FTP
O FTP/SFTP é uma maneira robusta de transferir arquivos do seu computador local para o seu site. A maioria dos hosts da Web oferece serviços de FTP gratuitos para que você possa acessar os arquivos do seu site remotamente a partir do seu próprio computador. A disponibilidade do FTP pode variar de um host da Web para outro e pode ter requisitos diferentes.
Normalmente, você precisará de um cliente FTP como FileZilla ou Cyberduck para se conectar ao seu servidor via FTP/SFTP. Isso permitirá que você tenha acesso ao sistema de arquivos do seu servidor da Web para criar pastas e fazer upload de arquivos de forma semelhante a como você copiaria arquivos entre pastas no seu próprio computador local.
Neste exemplo, usaremos o FTP para criar uma pasta chamada protected e importar nossos arquivos para ela, de modo que tenhamos os seguintes URLs agora:
http://example.com/protected/report.pdf http://example.com/protected/report.doc http://example.com/protected/report.docx http://example.com/protected/analysis.pdf http://example.com/protected/analysis.doc http://example.com/protected/analysis.docx http://example.com/protected/groupings.pdf http://example.com/protected/groupings.doc http://example.com/protected/groupings.docx http://example.com/protected/archive.zip
Esse cenário pode ser superior ao uso do Media Uploader do WordPress se você estiver planejando adicionar arquivos à sua pasta posteriormente, pois o Media Uploader do WordPress às vezes coloca arquivos carregados em momentos diferentes em pastas diferentes.
Portanto, com esse exemplo, tudo o que você precisa fazer é criar uma regra do tipo URI personalizado com esse caminho (digitado na caixa de texto da regra):
/protected/
Agora vamos dar uma olhada no uso de uma correspondência mais avançada com expressões regulares.
Expressões regulares
Expressões regulares é uma sintaxe de pesquisa exclusiva e descritiva comumente usada em todas as linguagens de programação modernas para selecionar e processar texto. Isso permitirá que você proteja grupos muito específicos de arquivos com facilidade.
A ideia aqui é permitir a correspondência de padrões em um determinado URL e proteger o URL se ele corresponder a uma de suas regras personalizadas do tipo URI com expressão regular ativada.
Por exemplo, no exemplo de FTP acima, se você quiser permitir que alguns usuários tenham acesso apenas aos PDFs e que outros tenham acesso aos arquivos pdf, doc, docx e zip, poderá criar duas regras de expressão regular diferentes: a primeira para um nível de associação e a segunda para outro.
A primeira regra para seu primeiro nível de associação teria um caminho semelhante:
^/protected/.*\.pdf
A segunda regra para seu outro nível de associação teria um caminho semelhante:
^/protected/.*\.(pdf|doc|docx|zip)
É verdade que as expressões regulares podem ser difíceis de dominar, mas elas podem fornecer alguns recursos poderosos de correspondência e proteção de arquivos nas regras do tipo URI personalizadas do MemberPress. Descobrimos que
http://www.regular-expressions.info/ é um bom recurso para quem deseja conhecer essa tecnologia avançada. Além disso, se você tiver necessidades mais complexas, nossa equipe de suporte é bastante competente em descobrir expressões regulares para o que você precisa proteger - portanto, fique à vontade para enviar um solicitação de suporte se você precisar de ajuda com esse recurso.
Explicação das regras de URI do MemberPress
O que você verá no vídeo: uma explicação mais detalhada das Custom URI Rules do MemberPress.
Requisitos técnicos
Como esse recurso utiliza o servidor da Web subjacente do seu site para proteger os arquivos, há alguns requisitos técnicos que devem ser atendidos para que ele funcione corretamente. Escrevemos o MemberPress para funcionar com as configurações de servidor mais comuns que existem, mas se as coisas não estiverem funcionando totalmente para você, aqui estão alguns pontos a serem verificados:
- Seu site deve ser servido pelo Apache ou por um servidor da Web compatível com o Apache, como o Litespeed. As regras de reescrita que o MemberPress instala são específicas do Apache. Se não tiver certeza de qual servidor da Web está usando, provavelmente é o Apache, mas para ter certeza, entre em contato com seu host da Web. O MemberPress não oferece suporte à proteção de arquivos em outros servidores da Web, como Nginx, IIS ou outros servidores não baseados no Apache. No entanto, se o seu servidor da Web estiver usando o Nginx como proxy (na frente do Apache), talvez seja possível usar o código de desvio de proxy do Nginx descrito na seção Nginx em esta página.
- Sua instalação do WordPress deve ter privilégios suficientes para fazer alterações em seu arquivo .htaccess. Se o seu arquivo .htaccess não puder ser gravado pelo WordPress, você poderá editá-lo manualmente seguindo nosso Instruções avançadas de reescrita.
- Sua instalação do WordPress deve ter a capacidade de gravar arquivos na pasta /wp-content/uploads. Isso também é um requisito para que o WordPress Media Uploader faça upload de arquivos, portanto, se ele estiver funcionando, isso também deverá estar funcionando.
- A Cloudflare e outras CDNs e o armazenamento em cache podem atrapalhar a proteção de arquivos. Isso ocorre porque eles armazenam o arquivo em cache para que ele não possa ser protegido ou interferem em nossos cookies de proteção e causam loops de redirecionamento infinitos.
- As Rewrite Rules do MemberPress devem estar ativadas. Vá para MemberPress->Settings->General (Configurações->Geral), desmarque a caixa de seleção "Disable Rewrite Rules" (Desativar regras de reescrita) e salve as alterações.
Também vimos usuários com regras de reescrita personalizadas que interferiram nas regras de reescrita do MemberPress. Portanto, se esse recurso não parecer estar funcionando e você achar que já passou por todas essas etapas, entre em contato com nossa equipe de equipe de suporte e nós o ajudaremos.
Proteger tipos de arquivos adicionais
O MemberPress pode proteger outros tipos de arquivos. Lembre-se de que cada solicitação HTTP de tipo de arquivo protegido causará uma segunda solicitação ao site para verificar se o arquivo está protegido ou não. Por esse motivo, não recomendamos a proteção de arquivos como imagens (jpg, png, gif, etc.), scripts (css, js) ou arquivos de fonte, pois isso poderia causar uma carga significativa em seu servidor.
Use o seguinte código personalizado em um plug-in como o Código WPC para adicionar outros tipos de arquivos. Consulte este artigo para obter detalhes: Como adicionar trechos de código personalizados no WPCode.
O código abaixo adiciona os tipos de arquivo "html" e "htm" à lista de arquivos protegidos. Depois de adicionar esse código, você também precisará atualizar as configurações de permalink do WordPress para forçar o WordPress a atualizar o arquivo .htaccess do seu site.
function add_types_protectable($types, $rules) { $types[] = 'htm'; $types[] = 'html'; return $types; } add_filter('mepr_rewrite_rules_protect_types', 'add_types_protectable', 11, 2);