solución simple para restringir el acceso a (algunas) cargas / descargas

11

Situación inicial

Para un sitio que estoy configurando, estaba investigando todo el campo de proteger las subidas / descargas y restringir el acceso a ellas en función de las funciones / capacidades del usuario. Por supuesto, he leído algunas de las preguntas anteriores relacionadas con el tema (general) aquí, por razones de referencia, las más importantes / interesantes que encontré:

Notas complementarias

En general, no es una mala idea mejorar adicionalmente la seguridad de su instalación de wordpress, por ejemplo, proteger su wp-config.php . Hay muchas cosas que puede y debe hacer. Hay un montón de información por ahí cómo hacerlo. Estoy en el contexto de esta pregunta principalmente preocupado por mis subidas / descargas.

Las cargas de WordPress no están protegidas, todos pueden navegar por la carpeta uploads , a menos que lo impida con un .htaccess :

Options All -Indexes

El archivo .htaccess debe colocarse dentro de la carpeta uploads . Pero eso no los protege realmente, solo hace que sea más difícil encontrar los archivos. Además, puede prevenir hotlinking , restringiendo esencialmente el acceso basado en referrer - aunque eso es un poco diferente, creo que lo mencioné, no estoy más detallado, puede encontrar mucha información al respecto.

Por supuesto, tiene la posibilidad de hacer que las publicaciones sean privadas o crear un tipo de publicación personalizada con archivos de plantilla adecuados para hacer que ese tipo de publicación sea privada, pero eso no asegura sus archivos. Lo mismo se puede decir para envolver los archivos en condicionales como is_user_logged_in() o is_admin() .

En una nota al margen, hay muchos complementos que prometen hacer tus archivos seguros y protegidos, pero muchos de ellos solo pretenden hacerlo, algunas de las razones son las anteriores. Solo lo estoy expresando porque estoy bastante seguro de que no todos lo saben, así que ten cuidado.

Objetivo

Mi intención era poder restringir el acceso a (algunas) cargas y descargas respectivamente. Y para asegurarse de que nadie no deseado pueda tener acceso a ellos, no por casualidad o si alguien conoce el nombre del archivo, los archivos deben ser realmente privados y seguros. Después de todo, solo ciertas personas deben tener acceso sin excepciones.

Además, no tenía necesidad de privatizar todo el sitio, de hecho, eso sería contraproducente, ya que se utiliza para fines de presentación pública. Además, quería que la solución fuera fácilmente utilizable, por la sencilla razón de que algunas de las personas que trabajan con ella no son exactamente expertos en informática, como suele ser el caso.

Pregunta

De ahí la pregunta, ¿existe una forma (relativamente) sencilla de restringir el acceso a (algunas) cargas y las descargas respectivas? Y como he realizado, ¿eso significa una manera de protegerlos y protegerlos realmente?

    
pregunta Nicolai 27.05.2013 - 23:50

1 respuesta

8

Estoy respondiendo a mi propia pregunta, porque encontré una solución, pero estoy realmente interesado en sus opiniones al respecto. O tal vez tengas una solución mucho mejor, si es así, realmente me gustaría hacerlo aquí.

Resultado de la investigación

Mis resultados de investigación fueron:
    1. obtenga los archivos fuera de la raíz del documento, carpeta www ;
    2. no permitir ningún acceso directo a la carpeta que contiene los archivos;     3. deje que un script maneje las solicitudes a los archivos; Las fuentes de esos puntos están, al menos en su mayoría, incluidas en mi pregunta.

Solución

  1. Instalé el complemento » wp-downloadmanager «
    • se creará una carpeta llamada files dentro de wp-content en el proceso;
  2. Agregué un archivo .htaccess a la nueva carpeta files :
    • contenido de .htaccess :
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. Cambié una opción importante del complemento:
    • la opción que quiero decir es download method ;
    • Lo cambié a output file ;
  4. He añadido algunos archivos a través de la interfaz del complemento:
    • hay una opción llamada allowed to download ;
    • que permite restringir el acceso según el rol / capacidad del usuario;
  5. hice algunas pruebas:
    • no hay acceso directo a los archivos, no a través de la barra de direcciones o wget;
    • se puede acceder a las descargas públicas a través de sus enlaces permanentes. Elijo "enlaces agradables agradables: sí" y "descargar url: id de archivo" en el panel de opciones - la barra de direcciones / wget también funciona;
    • las descargas restringidas y protegidas solo son accesibles si se registra como usuario con el rol / las capacidades correctas;

Pensamientos finales

Estoy pensando que la solución sigue los resultados de la investigación. Aparte de colocar los archivos en el exterior. Pero la restricción del acceso a / proteger el directorio y dejar que un script maneje las solicitudes de archivos se cumple. La restricción de acceso es manejada por el .htaccess y la secuencia de comandos en este caso es el complemento wp-downloadmanger .

Notas complementarias

  • es absolutamente necesario cambiar el download method a output file
  • y, por supuesto, es obligatorio que el archivo .htaccess esté en su lugar

  • para verificar el hecho de que el complemento asuma la función del script, eche un vistazo a wp-downloadmanger.php - sobre las líneas 207 a 227 (versión 1.6.1); esto se entiende como un punto complementario a la información vinculada

respondido por el Nicolai 30.05.2013 - 01:37

Lea otras preguntas en las etiquetas