Como proteger os uploads em multisite se o usuário não estiver logado?

4

Estou tentando configurar uma intranet multisite (usando subdomínios), em que o conteúdo de cada subsite só é acessível aos usuários conectados ao respectivo site. O problema que estou tendo é tentar restringir o acesso aos arquivos enviados (por exemplo, enlace ) para usuários logados apenas.

Semelhante a Como proteger os envios, Se o usuário não estiver conectado? , como eu habilitaria uma das soluções propostas por hakre ou Frank Bueltge para uma instalação multisite?

Eu tenho vasculhado a rede e o Wordress Answers, mas não consegui encontrar algo que eu possa trabalhar. Respostas relacionadas são:

Além disso, eu sou novo em PHP e ainda estou aprendendo como o WordPress funciona sob o capô, então informações detalhadas sobre o que eu preciso fazer e o que acontece onde seria muito apreciado.

Obrigado!

    
por acdesigns 29.08.2012 / 01:11

1 resposta

2

Boa pergunta!

Brincando um pouco, parece que está dando certo (mais testes e um visual mais qualificado são muito bem vindos :). Testado apenas em uma instalação de desenvolvimento localhost com subdomínios. Nenhum mapeamento de domínio.

Altere a seguinte regra de regravação .htaccess :

# uploaded files
# RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
RewriteRule ^files/(.+) dl-files.php?file=$1 [L]

Faça uma cópia de /wp-includes/ms-files.php e coloque-a na raiz com o nome dl-files.php .

Desative SHORTINIT , modifique o caminho wp-load.php e adicione uma current_user_can() no início, por isso, torna-se:

<?php
/**
 * Modified Multisite upload handler.
 *
 * @since 3.0.0
 *
 * @package WordPress
 * @subpackage Multisite
 */

//define( 'SHORTINIT', true );
require_once( 'wp-load.php' );

if( !is_multisite() )
    die( 'Multisite support not enabled' );

if( !current_user_can( 'subscriber' ) ) {
    status_header( 403 );
    die( '403 &#8212; Forbidden.' );
}

ms_file_constants();

/* ... rest of the original file ... */

Observe que a remoção do SHORTINIT aumenta o tempo de carregamento e o consumo de memória. Leia algum lugar que pode ser um aumento de dez vezes (!?).

Discussões interessantes na lista wp-edu (não encontrei nada em wp-hackers):

por brasofilo 15.11.2012 / 03:06