Abordado neste artigo:
O MemberPress possui alguns recursos poderosos para ajudar você a proteger arquivos estáticos. A proteção de arquivos do MemberPress funciona no nível do servidor web, o que garante proteção absoluta para 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 impedirá de prosseguir e solicitará que ela se cadastre ou faça login (caso já esteja cadastrada) antes de permitir o download desse 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, caso tenha um, ou a um plugin que
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 os permalinks do WordPress acessando o Painel de Controle do WordPress > Configurações > Permalinks > e simplesmente clicando no botão ‘Salvar alterações’ na parte inferior da página.
Explicação das regras de URI personalizado do MemberPress
As regras de URI personalizadas preenchem as lacunas onde as regras padrão são insuficientes, garantindo uma proteção abrangente do conteúdo em todo o seu site.
Casos de uso comuns
Regras de URI personalizadas proteger conteúdos que as regras padrão do MemberPress não conseguem abranger. Ao contrário das regras comuns, que atuam por meio do processamento de conteúdo do WordPress, as regras de URI personalizadas protegem as URLs diretamente no nível do servidor.
1. Páginas especiais do WordPress
As regras padrão de página não afetam páginas especiais, como a página inicial, a página de publicações, os arquivos de categorias ou as páginas de arquivo. Use regras de URI personalizadas para proteger essas áreas, direcionando-as às URLs específicas delas.
2. Conteúdo do construtor de páginas
As regras padrão MemberPress protegem apenas o conteúdo adicionado por meio da função de conteúdo do WordPress (o the_content() ). Muitos construtores de páginas e temas renderizam seu conteúdo fora dessa função.
Dessa forma, o conteúdo renderizado dessa maneira permanecerá desprotegido quando as regras padrão do MemberPress forem aplicadas. Em vez disso, você pode usar regras de URI personalizadas para proteger toda a página ou publicação.
3. Proteção de diretórios
Você também pode proteger vários arquivos de forma eficiente, direcionando diretórios inteiros com uma única regra usando curingas (por exemplo, /downloads/*).
Proteção de um único arquivo
Se você tiver um arquivo para proteger, veja aqui como fazer:
- 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 do tipo URI personalizado, indicando apenas o caminho (a 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 número pequeno de arquivos, ele pode se tornar demorado se aplicado a um número maior de arquivos. Então, 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 assinatura tenha acesso a todos eles.
A ideia aqui é que você coloque cada arquivo em uma pasta específica usando o FTP (recomendado) ou certifique-se de que cada arquivo enviado pelo Media Uploader tenha um prefixo comum (não recomendado, a menos que o FTP não seja uma opção).
Embora não recomendemos proteger vários arquivos enviados por meio do Uploader de Mídia do WordPress, compreendemos que pode haver ocasiões em que você queira ou precise fazê-lo. Portanto, se você enviar esses arquivos pelo Uploader de Mídia, eles terão as 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, basta criar uma regra do tipo “URI personalizado” com este 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 web para criar pastas e enviar arquivos de maneira semelhante à que você usaria para copiar 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 agora tenhamos as seguintes URLs:
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
Essa opção pode ser melhor do que usar o Uploader de Mídia do WordPress se você planeja adicionar arquivos à sua pasta posteriormente, pois o Uploader de Mídia do WordPress, às vezes, coloca arquivos enviados em momentos diferentes em pastas diferentes.
Portanto, neste exemplo, basta criar uma regra do tipo URI personalizado com este caminho (digitado na caixa de texto da regra):
/protected/
Agora, vamos ver como usar 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ê quisesse permitir que alguns usuários tivessem acesso apenas aos arquivos PDF e que outros tivessem acesso aos seus arquivos PDF, DOC, DOCX e ZIP, você poderia 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 oferecem recursos poderosos de correspondência e proteção de arquivos nas regras do tipo URI personalizado 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.
Requisitos técnicos
Como esse recurso utiliza o servidor web subjacente ao seu site para proteger arquivos, há alguns requisitos técnicos que devem ser atendidos para que ele funcione corretamente. Desenvolvemos o MemberPress para funcionar com as configurações de servidor mais comuns do mercado, mas se o recurso não estiver funcionando totalmente para você, aqui estão alguns pontos a serem verificados:
- Seu site deve ser hospedado pelo Apache ou por um servidor web compatível com o Apache, como o Litespeed. As regras de reescrita que o MemberPress instala são específicas para o Apache. Se você não tiver certeza de qual servidor web está usando, provavelmente é o Apache, mas, para ter certeza, entre em contato com seu provedor de hospedagem. O MemberPress não oferece suporte à proteção de arquivos em outros servidores web, como o Nginx, o IIS ou outros servidores que não sejam baseados no Apache. No entanto, se o seu servidor web estiver usando o Nginx como proxy (na frente do Apache), talvez você consiga usar o código de contorno de proxy do Nginx descrito na seção sobre 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 permitir a gravação de arquivos na pasta /wp-content/uploads. Esse também é um requisito para que o Uploader de Mídia do WordPress consiga enviar arquivos; portanto, se ele estiver funcionando, isso também deve funcionar.
- A Cloudflare, outras redes de entrega de conteúdo (CDNs) e sistemas de cache podem prejudicar a proteção de arquivos. Isso ocorre porque elas armazenam o arquivo em cache, impedindo que ele seja protegido, ou interferem em nossos cookies de proteção, causando loops infinitos de redirecionamento.
- 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 observamos que alguns usuários possuem 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á seguiu todas essas etapas, entre em contato com nossa equipe de suporte e nós vamos ajudar.
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. Após 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);