Cubierto en este artículo:
MemberPress dispone de algunas potentes funciones que le ayudarán a proteger los archivos estáticos. La protección de archivos de MemberPress funciona a nivel del servidor web, lo que proporciona una protección absoluta de cada archivo. Por ejemplo, incluso si una persona sin acceso a un archivo consiguiera de alguna manera obtener un enlace directo a él, MemberPress le pararía en seco y le pediría que se registrara o iniciara sesión (si ya se ha registrado) antes de permitirle descargar ese archivo.
¿Qué tipos de archivos puede proteger MemberPress?
MemberPress puede proteger cualquier archivo que no sea necesario para el correcto funcionamiento de su sitio web.
Por lo tanto, MemberPress puede
sólo proteger los siguientes tipos de archivos:
zip, gz, tar, rar, doc, docx, xls, xlsx, xlsm, pdf, mp4, m4v, mp3, ts, key, m3u8
Si desea proteger cualquier tipo de archivo que no figure en la lista anterior, le recomendamos que los comprima y proteja un único archivo .zip.
Además, puede añadir código personalizado al archivo functions.php de su tema, si dispone de uno, o a un plugin del tipo
WPCode (consulte este artículo para obtener más información: Cómo añadir fragmentos de código personalizados en WPCode). He aquí un ejemplo de ese código:
function add_types_protectable($types, $rules) { $types[] = 'csv'; return $ipos; } add_filter('mepr_rewrite_rules_protect_types', 'add_types_protectable', 11, 2);
Después de añadir ese código personalizado tendrás que actualizar tus permalinks de WordPress yendo a tu panel de WordPress > Configuración > Permalinks > y simplemente haciendo clic en el botón "Guardar cambios" en la parte inferior de esa página.
Proteger un único archivo
Si tiene un archivo que proteger, haga lo siguiente:
- Suba el archivo utilizando el cargador de medios de WordPress.
- Cree una regla URI personalizada para proteger el archivo.
Digamos que el archivo que subiste tenía esta URL:
http://example.com/wp-content/uploads/2015/10/report.pdf
La regla que crearía para este archivo sería un tipo de URI personalizado que apunte sólo a la ruta (parte después de
http://example.com) al archivo. Por lo tanto, en el cuadro de texto de esta regla, escriba lo siguiente:
/wp-content/uploads/2014/12/informe.pdf
Aunque se trata de un proceso relativamente sencillo para un número reducido de archivos, puede llevar mucho tiempo si se aplica a un número mayor de archivos. Veamos cómo crear una regla para proteger varios archivos.
Varios archivos
Supongamos que tiene 10 archivos y desea que el mismo nivel de afiliación tenga acceso a cada uno de ellos.
La idea es que pongas cada archivo en una carpeta especial con FTP (recomendado), o te asegures de que cada archivo que subas a través del cargador multimedia tenga un prefijo común (no recomendado a menos que FTP no sea una opción).
Aunque no recomendamos proteger múltiples archivos subidos usando el Media Uploader de WordPress, entendemos que puede haber ocasiones en las que quiera/necesite hacerlo. Por lo tanto, si subes estos archivos a través de Media Uploader, tendrán las siguientes URL:
http://example.com/wp-content/uploads/2015/10/bronze_report.pdf http://example.com/wp-content/uploads/2015/10/bronze_report.doc http://example.com/wp-content/uploads/2015/10/bronze_report.docx http://example.com/wp-content/uploads/2015/10/bronze_analysis.pdf http://example.com/wp-content/uploads/2015/10/bronze_analysis.doc http://example.com/wp-content/uploads/2015/10/bronze_analysis.docx http://example.com/wp-content/uploads/2015/10/bronze_groupings.pdf http://example.com/wp-content/uploads/2015/10/bronze_groupings.doc http://example.com/wp-content/uploads/2015/10/bronze_groupings.docx http://example.com/wp-content/uploads/2015/10/bronze_archive.zip
Ahora todo lo que tiene que hacer es crear una regla de tipo URI personalizada con esta ruta:
/wp-content/uploads/2015/10/bronze_
Esto protegerá cualquier archivo en la carpeta /wp-content/uploads/2015/10/ que tenga un nombre que empiece por "bronze_".
Múltiples archivos con FTP
FTP/SFTP es una forma robusta de transferir archivos desde tu ordenador local a tu sitio web. La mayoría de los alojamientos web ofrecen servicios FTP gratuitos para que puedas acceder a los archivos de tu sitio de forma remota desde tu propio ordenador. La disponibilidad de FTP puede variar de un alojamiento web a otro y puede tener diferentes requisitos.
Normalmente necesitarás un cliente FTP como FileZilla o Cyberduck para conectarte a tu servidor vía FTP/SFTP. Esto te permitirá tener acceso al sistema de archivos de tu servidor web para crear carpetas y subir archivos de forma similar a como copiarías archivos entre carpetas en tu propio ordenador local.
En este ejemplo usaremos FTP para crear una carpeta llamada protected e importar nuestros archivos en ella, de modo que ahora tenemos las siguientes URLs:
http://example.com/protected/report.pdf http://example.com/protected/report.doc http://example.com/protected/report.docx http://example.com/protected/analysis.pdf http://example.com/protected/analysis.doc http://example.com/protected/analysis.docx http://example.com/protected/groupings.pdf http://example.com/protected/groupings.doc http://example.com/protected/groupings.docx http://example.com/protected/archive.zip
Este escenario puede ser superior al uso del Media Uploader de WordPress si está planeando añadir archivos a su carpeta más tarde porque el Media Uploader de WordPress a veces pondrá los archivos subidos en diferentes momentos en diferentes carpetas.
En este ejemplo, todo lo que tiene que hacer es crear una regla de tipo URI personalizada con esta ruta (introducida en el cuadro de texto de la regla):
/protegido/
Veamos ahora cómo utilizar algunas coincidencias más avanzadas con Expresiones Regulares.
Expresiones regulares
Expresiones regulares es una sintaxis de búsqueda única y descriptiva que se utiliza habitualmente en todos los lenguajes de programación modernos para seleccionar y procesar texto. Le permitirá proteger grupos muy específicos de archivos con facilidad.
La idea aquí es que le permitirá hacer coincidir patrones en una URL dada y proteger la URL si coincide con una de sus Reglas personalizadas de tipo URI con expresión regular activada.
Por ejemplo, en el ejemplo de FTP anterior, si desea permitir que algunos usuarios tengan acceso sólo a los archivos pdf y que otros tengan acceso a sus archivos pdf, doc, docx y zip, podría crear 2 reglas de expresión regular diferentes: la primera para un nivel de miembro y la segunda para otro.
La primera Regla para su primer nivel de afiliación tendría una ruta de algo como:
^/protegido/.*\.pdf
La segunda Regla para su otro nivel de membresía tendría una ruta de algo como:
^/protegido/.*\(pdf|doc|docx|zip)
Es cierto que las Expresiones Regulares pueden ser difíciles de dominar, pero pueden proporcionar algunas potentes capacidades de coincidencia y protección de archivos en las Reglas Personalizadas de tipo URI de MemberPress. Hemos descubierto que
http://www.regular-expressions.info/ es un buen recurso para cualquiera que quiera descubrir esta potente tecnología. Además, si tienes necesidades más complejas, nuestro equipo de soporte es bastante experto en expresiones regulares para lo que necesites proteger. solicitud de asistencia si necesitas ayuda con esta función.
Explicación de las normas URI de MemberPress
Lo que verás en el vídeo: una explicación más detallada de las reglas URI personalizadas de MemberPress.
Requisitos técnicos
Debido a que esta función utiliza el servidor web subyacente de su sitio web para proteger los archivos, hay algunos requisitos técnicos que deben cumplirse para que esta función funcione correctamente. Hemos escrito MemberPress para que funcione con las configuraciones de servidor más comunes, pero si no funciona correctamente, aquí tienes algunas cosas que debes comprobar:
- Su sitio web debe ser servido por Apache o un servidor web compatible con Apache como Litespeed. Las reglas de reescritura que MemberPress instala son específicas para Apache. Si no está seguro de qué servidor web está utilizando, probablemente sea Apache, pero para estar seguro, puede ponerse en contacto con su proveedor de alojamiento web. MemberPress no es compatible con la protección de archivos en otros servidores web como Nginx, IIS u otros servidores no basados en Apache. Sin embargo, si tu servidor web utiliza Nginx como proxy (delante de Apache), puedes utilizar el código de desvío de proxy de Nginx descrito en la sección de Nginx en esta página.
- Su instalación de WordPress debe tener privilegios suficientes para realizar cambios en su archivo .htaccess. Si su archivo .htaccess no puede ser escrito por WordPress, puede editarlo manualmente siguiendo nuestros pasos. instrucciones avanzadas de reescritura.
- Su instalación de WordPress debe tener la capacidad de escribir archivos en su carpeta /wp-content/uploads. Esto también es un requisito para que WordPress Media Uploader suba archivos, así que si eso funciona, entonces esto también debería funcionar.
- Cloudflare y otros CDN's y el almacenamiento en caché tienen el potencial de interponerse en el camino de la protección de archivos. Esto se debe a que o bien almacenan en caché el archivo para que no pueda ser protegido, o interfieren con nuestras cookies de protección y causan bucles de redirección infinitos.
- Las reglas de reescritura de MemberPress deben estar activadas. Vaya a MemberPress->Configuración->General, desmarque la casilla "Desactivar reglas de reescritura" y guarde los cambios.
También hemos visto usuarios con reglas de reescritura personalizadas que han interferido con las reglas de reescritura de MemberPress. Así que si esta característica no parece estar funcionando y usted siente que ha pasado por todos estos pasos, por favor póngase en contacto con nuestro equipo de apoyo y le ayudaremos.
Proteger otros tipos de archivos
MemberPress puede proteger tipos de archivo adicionales. Tenga en cuenta que cada petición HTTP de tipo de archivo protegible provocará una segunda petición al sitio para comprobar si el archivo está protegido o no. Por esta razón, no recomendamos proteger archivos como imágenes (jpg, png, gif, etc), scripts (css, js), o archivos de fuentes ya que podría causar una carga significativa a su servidor.
Utilice el siguiente código personalizado en un plugin como el WPCode para añadir tipos de archivo adicionales. Consulte este artículo para obtener más información: Cómo añadir fragmentos de código personalizados en WPCode.
El siguiente código añade los tipos de archivo "html" y "htm" a la lista de archivos protegidos. Una vez añadido este código, también tendrá que actualizar la configuración de permalink de WordPress para forzar WordPress para actualizar el archivo .htaccess para su sitio.
function add_types_protectable($types, $rules) { $types[] = 'htm'; $types[] = 'html'; return $ipos; } add_filter('mepr_rewrite_rules_protect_types', 'add_types_protectable', 11, 2);