Descripción
WP Bouncer restringe el número de accesos simultáneos para la misma cuenta de usuario de WordPress. El objetivo del plugin es disuadir a la gente de compartir sus credenciales de acceso en tu sitio, lo que es especialmente importante para un sitio de membresía de pago, de contenido premium o de aprendizaje virtual.
Cómo WP Bouncer protege los accesos compartidos de usuarios
- El plugin almacena un
FAKESESSID
aleatorio para cada usuario cuando accede. - Si un usuario se ha conectado, en cada carga de página (gancho init), WP Bouncer comprueba si el
FAKESESSID
almacenado en las cookies del usuario es el mismo que el último acceso almacenado en un dato transitorio (fakesessid_user_login
). - Si los dos valores no coinciden, WP Bouncer cierra la sesión del usuario y lo redirige a la página de acceso de WordPress o a una página personalizada utilizando el filtro «wp_bouncer_redirect_url».
Si la opción WP_BOUNCER_HEARTBEAT_CHECK está definida como «true», se cargará JavaScript para rebotar a los usuarios cuando un nuevo usuario se conecte con el mismo acceso. Esto es útil para sitios con caché de página.
Las cuentas de administrador o cualquier usuario con la capacidad «manage_options» quedan excluidas de los rebotes.
O, permitir un número específico de sesiones activas
Por defecto, WP Bouncer solo permite una sesión por usuario.
Puedes utilizar este plugin para ofrecer membresías por lotes a clientes corporativos, educativos o de otro tipo mediante un acceso compartido.
Utiliza el filtro wp_bouncer_number_simultaneous_logins
para permitir un número definido de «sesiones» activas.
Ejemplos de uso de WP Bouncer
- El usuario A se conecta como «usuario». Su
FAKESESSID
, digamos «SESSION_A» se almacena en una opción de WordPress. - El usuario B se conecta como «usuario». Su
FAKESESSID
, digamos «SESSION_B», sobrescribe la opción almacenada de WordPress. - El usuario A intenta cargar una página de tu sitio, WP Bouncer le atrapa y le desconecta, redirigiéndole al mensaje de advertencia.
- El usuario B puede navegar por el sitio con normalidad… a menos que…
- El usuario A vuelve a acceder como «usuario». Su
FAKESESSID
, «SESSION_A_v2» se almacena en la opción de WordPress. - Ahora el usuario B quedaría desconectado si carga otra página.
Ganchos y filtros
- filtro
wp_bouncer_ignore_admins
: si devuelve «false», incluso los administradores serán rebotados. - Filtro
wp_bouncer_redirect_url
: se puede utilizar para cambiar la URL a la que se redirige después de ser rebotado. - Filtro
wp_bouncer_number_simultaneous_logins
: se puede establecer para limitar los accesos a un número distinto de 1. 0 significa accesos ilimitados. wp_bouncer_login_flag
: se ejecuta justo antes del rebote (puede utilizarse para detener potencialmente el rebote).- gancho
wp_bouncer_session_ids
: se utiliza para filtrar los identificadores de sesión al guardarlos. Pasa $session_ids, $old_session_ids (antes de que se eliminen/rebote) y el ID del usuario actual como parámetros. - gancho
wp_bouncer_session_length
: se utiliza para filtrar a cuánto tiempo se establecen los datos transitorios de los identificadores de sesión. De esta forma, puedes programar los datos transitorios para que caduquen a una hora concreta del día. Ten en cuenta que el dato transitorio se guarda cada vez que se carga la página, así que si lo estableces en 5 minutos, caducará en 5 minutos cada vez que se cargue la página. Deberías intentar establecerlo en (el número de segundos hasta medianoche) o algo parecido.
Apoya a los autores del plugin
Si te gusta este plugin, echa un vistazo al trabajo de Jason con Stranger Studios y Paid Memberships Pro y al trabajo de Andrew en su sitio personal.
Instalación
Instalar WP Bouncer desde WordPress
- Visita la página de plugins en tu escritorio y selecciona «Añadir nuevo»
- Buscar «WP Bouncer»
- Localiza este plugin y haz clic en «Instalar»
- Activa «WP Bouncer» a través del menú «Plugins» de WordPress
Instalar WP Bouncer manualmente
- Sube la carpeta
wp-bouncer
al directorio/wp-content/plugins/
- Activa «WP Bouncer» a través del menú «Plugins» de WordPress
Ajustes
No hay ajustes para este plugin. Si quieres modificar el comportamiento por defecto para activar en su lugar las comprobaciones de JavaScript, añade el siguiente código a tu archivo wp-config.php:
define( ‘WP_BOUNCER_HEARTBEAT_CHECK’, true );
FAQ
-
Necesito algo fuerte para evitar que la gente comparta cuentas.
-
Hemos descubierto que utilizar un esquema de identificación de 2 factores en tu sitio es una buena forma de evitar que la gente comparta cuentas. Cuando intentamos diseñar una versión avanzada de WP-Bouncer, era básicamente 2FA. Así que pruébalo.
Reseñas
Colaboradores y desarrolladores
«WP Bouncer – Limit Simultaneous Logins» es un software de código abierto. Las siguientes personas han colaborado con este plugin.
Colaboradores«WP Bouncer – Limit Simultaneous Logins» está traducido en 3 idiomas. Gracias a los traductores por sus contribuciones.
Traduce «WP Bouncer – Limit Simultaneous Logins» a tu idioma.
¿Interesado en el desarrollo?
Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.5.1 – 2023-01-30
- MEJORA: Añadido el filtro
wp_bouncer_ajax_timeout
para ajustar el tiempo de espera (por defecto 5000). - MEJORA: Añadida compatibilidad con traducciones.
- CORRECCIÓN DE FALLOS: Eliminado del repositorio SVN el archivo de aviso de acceso y la captura de pantalla no utilizados en este plugin.
- CORRECCIÓN DE FALLOS: Corregida una constante mal escrita para la versión y el uso del plugin en la carga del archivo JS.
1.5 – 2021-06-02
- MEJORA: Se ha eliminado el archivo login-warning.php. En su lugar, redirigimos a la página wp-login.php y mostramos un mensaje.
- CORRECCIÓN DE FALLOS: Se han ajustado las URL para que sean https y las metaetiquetas para que sean noindex/nofollow.
1.4.1 – 2020-01-01
- CORRECCIÓN DE FALLOS: Se ha solucionado un problema por el que los usuarios no eran redirigidos a la página de advertencia al desconectarse.
1.4 – 2019-01-16
- CORRECCIÓN DE FALLOS: Se ha solucionado un problema sobre cómo se almacenaban las cosas en los datos transitorios. (Gracias, zackdn en GitHub)
- CARACTERÍSTICA: Se ha añadido JavaScript para rebotar a los usuarios en caso de que el rebotador PHP no se esté ejecutando (por ejemplo, cuando se utiliza la caché de página). Para activarlo, añade
define( 'WP_BOUNCER_HEARTBEAT_CHECK', true );
a tu archivo wp-config.php (sin las comillas).
1.3.1
- Corregido un error tipográfico.
- Probado hasta WordPress 4.8
1.3
- Se ha añadido un enlace de acción de usuario (al pasar el ratón por encima de un usuario en la página users.php del escritorio) para restablecer todas las sesiones de un usuario.
- Se ha añadido el gancho «wp_bouncer_session_ids» para filtrar los identificadores de sesión al guardarlos. Pasa $session_ids, $old_session_ids (antes de que se eliminen/rebote) y el ID del usuario actual como parámetros.
- Se ha añadido el gancho «wp_bouncer_session_length» para filtrar a cuánto tiempo se han establecido los datos transitorios de los identificadores de sesión. De esta forma, puedes programar los datos transitorios para que caduquen a una hora específica del día. Ten en cuenta que el dato transitorio se guarda cada vez que se carga la página, así que si lo estableces en 5 minutos, caducará en 5 minutos cada vez que se cargue la página. Deberías intentar establecerlo en (el número de segundos hasta medianoche) o algo parecido.
1.2
- Corregidos algunos errores tipográficos en las variables utilizadas para generar los identificadores de sesión.
- Los datos transitorios «fakesessid_{user_login}» almacenan ahora arrays de identificadores de sesión. Esto permite múltiples (pero limitadas) sesiones por usuario si se desea.
- Añadido el filtro «wp_bouncer_ignore_admins». Si devuelve «false», incluso los administradores serán rebotados.
- Se ha añadido el filtro «wp_bouncer_redirect_url», que se puede utilizar para cambiar la URL a la que se redirige tras ser rebotado.
- Se ha añadido el filtro «wp_bouncer_number_simultaneous_logins», que se puede establecer para limitar los accesos a un número distinto de 1. 0 significa accesos ilimitados.
- Se ha añadido «wp_bouncer_login_flag» por si quieres utilizar un gancho y hacer algo justo antes de rebotar (o potencialmente detener el rebote).
1.1
- Las cuentas de administrador (concretamente los usuarios con capacidad «manage_options») están excluidas de los rebotes. Esto será un ajuste una vez que hayamos creado una página de ajustes.
- Cambios en el archivo «Léeme».
1.0.1
- Corregido un fallo en la forma en que se establecían y obtenían los datos transitorios.
- Eliminado el código en «track_login» que garantizaba de que estabas accediendo desde la página de acceso. Esto permitirá que WP Bouncer se active al acceder a través de wp_signon, etc.
- Movida la URL de redirección a una propiedad de clase. Con el tiempo añadiremos una página de ajustes para este y cualquier otro valor de ajuste/configuración.
1.0
- ¡Primera versión!