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é:
- Cómo proteger las subidas, si el usuario no ha iniciado sesión?
- ¿Cómo restringir el acceso a los archivos cargados?
- Restricción del acceso a los archivos dentro de un determinado carpeta
- ¿Cómo hacer que la carga de medios sea privada?
- Fusionando el script de descarga de PHP en 'functions.php'
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?