Avisos
Vaciar todo

Bloquear acceso a archivos de una carpeta específica de Wordpress del Plugin Gravity PDF  

 
Carmelo M.
 Carmelo M.
Usuario activo

Buenas noches,

Estamos trabajando para poder integrar Gravity PDF con el Plugin Gravity Forms.

Parece que tenemos un problema con la seguridad de los PDFs que estarían expuestos públicamente.

Este es el mensaje de Gravity PDF dentro del Admin de Wordpress https://imgur.com/zZhDOmY

Desde el Soporte de Gravity PDF
Desde el soporte de Gravity PDF me dice que el Hosting que uso, de Webempresa debería automáticamente aplicar una regla de seguridad usando el archivo .htaccess que en principio parece que está correcto con el contenido "deny from all". Veo que no se pueden ver las carpetas pero ...

Sin embargo, al hacer la prueba de seguridad, creando un archivo de prueba sample.txt vemos que la regla de seguridad no aplica y se puede ver el contenido de sample.txt:

https://nanitos.nexodreams.es/wp-content/uploads/PDF_EXTENDED_TEMPLATES/tmp/sample.txt

Esto es lo que me han escrito desde Gravity PDF:
------
There should be a .htaccess file in your /wp-content/uploads/PDF_EXTENDED_TEMPLATES/tmp/ directory, and when you open the .htaccess file it should say "deny from all";. Before you do anything else, check if that file exists in the correct location and it contains the correct content. If everything looks good, create a file called "sample.txt"; inside the tmp directory with the content "this is sample text"; and then attempt to access it using this URL:

https://nanitos.nexodreams.es/wp-content/uploads/PDF_EXTENDED_TEMPLATES/tmp/sample.txt

If you see the content "this is sample text" appear on your screen then you should reach out to your web hosting provider´s support team and ask them why the .htaccess rule isn´t working.
----

Mover carpeta fuera del directorio público
Además, una de las opciones que me sugieren desde Gravity PDF es mover fuera del directorio web público la carpeta "uploads/PDF_EXTENDED_TEMPLATES/tmp" con esta guía: https://docs.gravitypdf.com/v5/gfpdf_tmp_location/ lo cual no sé cómo realizar porque no veo que esté bien explicado "en cristiano", seguramente para los expertos sea algo sencillo.

Por último señalar que...
He seguido los pasos indicados por Pepe en este tema https://www.webempresa.com/foro/preguntas-sobre-wordpress/restringir-acceso-a-archivos-de-la-carpeta-upload pero no está funcionando y sigo viendo el texto: this is a sample text

También he probado el Plugin sugerido por Jhon "prevent direct access" pero ha funcionado.

Entonces... ¿cómo podemos hacer para que la regla de seguridad sea aplicada y los documentos creados por Gravity PDF estén protegidos?

Espero que me podáis ayudar a solucionar esta situación.

Muchas gracias,
Carmelo

Citar
Respondido : 23/10/2020 1:42 am
Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

Hola Carmelo, 

Te sugiero aplicar lo que soporte técnico te ha sugerido. 

Te explico, debes ingresar a tu cuenta de cPanel -> Inicio -> Administrador de archivos, posteriormente te diriges a la carpeta public_html, dentro de public_html creas una nueva carpeta llamada GravityPDF (tal cual, así como lo he pegado), dentro de GravityPDF creas otra carpeta llamada tmp, de tal manera que tendrás la siguiente estructura de directorios:

/public_html/GravityPDF/tmp

Posteriormente, desde el administrador de tu Wordpress te diriges a Temas -> Editar -> fucntions.php y al final del mismo agregas:

add_filter( 'gfpdf_tmp_location', function( $path, $working_folder, $upload_url ) {
/*
* On a standard WordPress installation the ABSPATH directory refers to the top-level directory on your web server
* where WordPress is located. When that's the case, going up a directory and creating the tmp folder usually means it becomes private.
*Depending on your web server setup you may need to modify this path to ensure it's not accessible through your browser.  Make sure you include the forward slash at the end!*/
return ABSPATH . '../GravityPDF/tmp/';
/* If the above doesn't work, you can try use the get_temp_dir() function instead*/
return get_temp_dir() . 'GravityPDF/';

}, 10, 3 );

La siguiente guía puede servirte -> administrador-archivos-cpanel

Nos comentas los resultados independientemente de si funcione o no, si no funciona compartes capturas de pantalla de la estructura de archivos que creaste.

Saludos

ResponderCitar
Respondido : 23/10/2020 2:53 am
Carmelo M. me gusta

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Carmelo M.
 Carmelo M.
Usuario activo

Muchísimas gracias
@bulmaro-webempresa

Buenas noticias y no tan buenas ... os cuento

Las buenas noticias
Por una parte, después de los cambios, la web sigue funcionando y lo que es más importante, en los Settings de Gravity PDF ya me sale el mensaje: "Protected"

https://imgur.com/dvQKRfi

Las no tan buenas
Sin embargo, ahora al hacer la prueba de rellenar y enviar un Formulario https://nanitos.nexodreams.es/gravity-form/
... todo parece que OK pero ahora YA NO ADJUNTA el PDF al Email, algo que antes sí hacía y que es la principal función que quiero conseguir con este plugin.

Carpeta GravityPDF creada en public_html
¿Qué contiene? Pues he copiado exactamente lo que estaba en la carpeta antigua. Adjunto capturas de cómo está la cosa:

Carpeta GravityPDF
https://imgur.com/VXYLKgM
contiene carpetas tmp y fonts y también un index.html

Carpeta GravityPDF/tmp
https://imgur.com/WfZCdbt
contiene carpetas mpdf y también un index.html, un htaccess y un sample.txt

Carpeta GravityPDF/tmp/mpdf
https://imgur.com/tYGMQsa
contiene carpetas ttfontdate y también un index.html

------

¿Qué necesitaríamos para que los PDFs se enlacen con la nueva carpeta? ¿Tengo que eliminar alguna subcarpeta o ficheros que están en ellas?

¡Mil gracias por la ayuda!

ResponderCitar
Respondido : 23/10/2020 4:08 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Carmelo,

Entiendo que haz añadido archivo en el directorio creado en public_html, en este caso no veo que la guía mencione que copies los archivos antiguos en le nuevo directorio.

Prueba crear nuevamente todo de acuerdo a los pasos que te comenta Bulmaro sin añadir archivo adicionales en este nuevo directorio creado.

Respondido por: @bulmaro-webempresa

Te explico, debes ingresar a tu cuenta de cPanel -> Inicio -> Administrador de archivos, posteriormente te diriges a la carpeta public_html, dentro de public_html creas una nueva carpeta llamada GravityPDF (tal cual, así como lo he pegado), dentro de GravityPDF creas otra carpeta llamada tmp, de tal manera que tendrás la siguiente estructura de directorios:

/public_html/GravityPDF/tmp

Posteriormente, desde el administrador de tu Wordpress te diriges a Temas -> Editar -> fucntions.php y al final del mismo agregas:

add_filter( 'gfpdf_tmp_location', function( $path, $working_folder, $upload_url ) {
/*
* On a standard WordPress installation the ABSPATH directory refers to the top-level directory on your web server
* where WordPress is located. When that's the case, going up a directory and creating the tmp folder usually means it becomes private.
*Depending on your web server setup you may need to modify this path to ensure it's not accessible through your browser.  Make sure you include the forward slash at the end!*/
return ABSPATH . '../GravityPDF/tmp/';
/* If the above doesn't work, you can try use the get_temp_dir() function instead*/
return get_temp_dir() . 'GravityPDF/';

}, 10, 3 );

La siguiente guía puede servirte -> administrador-archivos-cpanel

Comprueba luego si tras ello funciona de forma adecuada

Nos comentas como ha ido todo

PD: Siempre que efectúes cambios a nivel de código en tu sitio web crear una copia de seguridad, de esta forma si se genera algún error puedes restaurarla. Te comparto esta guía donde menciona como puedes hacerlo ->  https://www.webempresa.com/blog/backups-wordpress-en-2-minutos-con-all-in-one-migration.html

Un Saludo

ResponderCitar
Respondido : 23/10/2020 4:34 pm
Carmelo M. me gusta

Cursos Gratuitos WordPress

Carmelo M.
 Carmelo M.
Usuario activo

Muuuuchas gracias @karen @bulmaro-webempresa!!!

Después del apunte de Karen he procedido a restaurar la web y realizar todo el proceso sugerido por Bulmaro desde el principio.

Ahora, veo que sin yo crear nada en la carpeta GravityPDF/tmp se han creado una carpeta y archivos... supongo que esto es lo habitual.

Todo parece que está perfecto, con el aviso de "Protegido" en el plugin Gravity PDF ...  Sin embargo, al realizar una prueba de envío de Formulario: 

https://nanitos.nexodreams.es/gravity-forms/

1) Lo malo: No recibo adjunto el PDF en el correo, algo que sí sucede sin realizar ningún cambio.

2) Lo bueno: Sí veo en "Entries" de Gravity, el formulario que ha sido completado y también su PDF generado.

Entonces, lo único que falta es conseguir que el PDF se adjunte al correo, en este caso del Admin. Adjunto captura donde se ve claramente que tengo al Admin para la notificación que claramente especifica: 

Notifications en el Settings de Gravity PDF
Automatically generate and attach the PDF to your selected notifications. Conditional Logic for both the PDF and the notification applies. Inactive PDFs are also not sent. 

https://imgur.com/2iF0FcU

¿Qué puede estar provocando que ahora no se adjunte el PDF en el email?

¡¡¡Mil gracias por vuestra ayuda!!!

ResponderCitar
Respondido : 23/10/2020 9:20 pm
Argenis
 Argenis
Soporte CMS Webempresa Moderator

Hola Carmelo,

En este caso la opción de recepción de archivos es parte del funcionamiento de la integración del gravity forms, por lo que sería bueno que contactaras nuevamente con ellos para que validen por que puede estar sucediendo esto, y si necesitas agregar o modificar un código te podremos orientar para que logres lo que te sugieran los desarrolladores del mismo.

Un saludo 🖐️ 

ResponderCitar
Respondido : 23/10/2020 9:43 pm
Carmelo M. me gusta

Carmelo M.
 Carmelo M.
Usuario activo

Muchas gracias @argenis

Voy a contactar con Gravity PDF a ver si saben qué puede estar pasando tras el cambio que hemos hecho.

En cuanto sepa algo os digo : )

Mil gracias a todos por vuestro genial trabajo!!! 😍 

¡Feliz finde!

ResponderCitar
Respondido : 24/10/2020 10:26 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Carmelo.

Ok, dejamos el hilo en abierto por si tienes que retomarlo.

 

Un saludo

ResponderCitar
Respondido : 24/10/2020 10:55 am

wpdoctor-revisa-la-salud-de-tu-wordpress

Carmelo M.
 Carmelo M.
Usuario activo

Muchas gracias @pepesoler

He recibido respuesta de Gravity Forms. Esta es la respuesta del soporte de Gravity PDF después de ver el Log de Gravity Forms y Gravity PDF:

The PDF logs show the error: "Could not create directory:
-----
Los registros PDF muestran el error: "No se pudo crear el directorio: /home2/domussho/public_html/nanitos/../GravityPDF/tmp/14/". Debido a que el PDF no se pudo escribir en el sistema de archivos local, rompe los archivos adjuntos del PDF. Es probable que se trate de un problema de permisos con la nueva carpeta temporal que está utilizando donde el servidor web no puede escribir en este directorio correctamente. ¿Quizás su proveedor de alojamiento web pueden ayudarte?

---

Como parecía ser algo de Servidor se lo he pasado al Hosting y me han dicho esto:

Entiendo que los pdf, que vas a generar con la herramienta Gravity PDF, vas a dejarlos en la carpeta public_html/GravityPDF, es correcto?

Revisando dicha carpeta veo que cuenta con los permisos adecuados, revisando la captura del log que nos envías, donde nos marcas la opción en color rojo ,  indica que no se ha podido crear o encontrar el directorio, y seguido marca el directorio:

/home2/domussho/public_html/nanitos/../GravityPDF/tmp/14/

El cual no correspondería a la ruta que requieres que esten los pdf, que sería /home2/domussho/public_html/GravityPDF, en este caso tendrías que verificar la configuración de este plugin y verificar la ruta a la cual esta intentando realizar la creación de estos pdf, y que sea una ruta valida y que exista.

----

Entonces, ¿cómo debería hacer para tener la carpeta correcta? ¿Habría que modificar algo del código que hemos añadido en el functions.php del tema? 

¡A ver si podéis ayudarme a encontrar la solución!

¡¡¡Mil gracias!!!

 

ResponderCitar
Respondido : 26/10/2020 8:37 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Carmelo.

Los permisos están bien, lo unico que veo es que dentro de la carpeta tmp tienes un htaccess con un deny " from all " lo que hace que esa carpeta esté bloqueada.

Prueba a eliminar esa línea.

Al estar la carpeta GravityPDF fuera de la carpeta principal del dominio no se puede tener acceso por parte de algún usuario y ese deny no hace falta.

Un saludo

 

ResponderCitar
Respondido : 26/10/2020 2:16 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Carmelo M.
 Carmelo M.
Usuario activo

Hola @pepesoler

Gracias por tu guía. 
He borrado esa línea.. he vuelto a probar a enviar un formulario y sigue sin adjuntar el PDF : (

Y lo que no entiendo es lo de esta línea: "Could not create directory: /home2/domussho/public_html/nanitos/../GravityPDF/tmp/14/"

¿Por qué está intentando crear en public_html/nanitos si la dirección nueva es public_html/GravityPDF? ¿Puede ser algo sobre esto?

 

ResponderCitar
Respondido : 26/10/2020 3:44 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Carmelo.

Entonces tendrás que consultarlo con el desarrollador del plugin, nosotros solo podemos darte opciones estándar que igual no sirven para la configuración del plugin.

 

Un saludo

ResponderCitar
Respondido : 26/10/2020 4:08 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Carmelo M.
 Carmelo M.
Usuario activo

OK @pepesoler

Vuelvo a escribir a Gravity PDF a ver si hay algo que falta por configurar correctamente.

Con cualquier cosa os digo.

¡Muchas gracias¡

ResponderCitar
Respondido : 26/10/2020 5:14 pm
Argenis
 Argenis
Soporte CMS Webempresa Moderator

Hola Carmelo,

Estupendo, recuerda si tienes otra consulta puedes crear un nuevo tema.

Un saludo 🖐️ 

ResponderCitar
Respondido : 26/10/2020 6:09 pm

Cursos Gratuitos WordPress