Situación inicial
Para un sitio que estoy configurando, estaba investigando todo el campo de asegurar cargas / descargas y restringir el acceso a ellos 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é:
- ¿Cómo proteger las cargas si el usuario no ha iniciado sesión?
- ¿Cómo restringir el acceso a los archivos cargados?
- Restringir el acceso a los archivos dentro de una carpeta específica
- ¿Cómo hacer que la carga de medios sea privada?
- Fusionar script de descarga PHP en `functions.php`
Notas suplementarias
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í sobre cómo hacerlo. Estoy en el contexto de esta pregunta principalmente sobre mis cargas / descargas.
Las cargas de Wordpress no son seguras, todos pueden explorar la uploads
carpeta, a menos que lo evites con .htaccess
:
Options All -Indexes
El .htaccess
archivo debe colocarse dentro de la uploads
carpeta. Pero eso no es realmente protegerlos, solo hace que sea más difícil encontrar los archivos. Además, puede evitar hotlinking
, restringir esencialmente el acceso basado en referrer
, aunque ese es un caso un poco diferente, pensé que lo mencionaría, no estoy elaborando más, puede encontrar mucha información al respecto.
Por supuesto, tiene la posibilidad de hacer publicaciones 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 es proteger 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 que sus archivos estén seguros y protegidos, pero muchos de ellos solo pretenden hacerlo, algunas de las razones son anteriores. Solo lo estoy explicando porque estoy bastante seguro de que no todos lo conocen, así que tenga en cuenta eso.
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 deberían tener acceso sin excepciones.
Además, no tuve necesidad de privatizar todo el sitio, de hecho, eso sería contraproducente, ya que se utiliza con 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, ¿hay una manera (relativamente) simple de restringir el acceso a (algunas) cargas y las descargas respectivas? Y como lo hice, ¿eso significa una forma de protegerlos y protegerlos realmente?