Hola:
Estaría interesado en saber si existe alguna extensión que guarde cada una de las ips diferentes que puede usar un usuario de joomla. A veces, sabemos que entran usuarios indeseables en los foros de nuestras webs que tienen ip dinámica, por lo que a pesar de que borremos su cuenta, volverán a registrarse con una nueva Ip.
En versiones anteriores de Joomla hice una pequeña modificación en el archivo joomla.php que hacía esto mismo, de modo que cuando un usuario se logueaba, automáticamente se guardaba su ip en una tabla de la base de datos, en caso de ser una ip distinta a las que hubiese usado en anteriores sesiones. Pero ahora me he perdido, y no se en que archivo se manejan las sesiones de usuario de joomla cuando inicia sesión, para poder meter allí esta pequeña modificación.
Cualquier ayuda será bienvenida.
Gracias.
Francis.
Hola francis,
échale un vistazo al plugin JBIpLogger:
http://extensions.joomla.org/extensions/access-a-security/site-security/site-monitoring/9884
Por lo que he leído se puede combinar con JB IP Block para ver las IPs que acceden al sistema y bloquear la que necesites:
http://extensions.joomla.org/extensions/access-a-security/site-access/8678
Aquí tienes la documentación de las extensiones:
http://www.jb-soft.nl/index.php?option=com_phocadocumentation&view=category&id=13:jbiplogger&Itemid=11
http://www.jb-soft.nl/index.php?option=com_phocadocumentation&view=category&id=10:jbipblock&Itemid=11
Saludos
Hola Francis,
Yo nunca te recomendaría realizar cambios en archivos del core de Joomla! y menos cuando lo próximo que tienes por delante es una futura migración de rama, ya que de la 1.5.22 pasaremos (ya esta sucediendo 🙂 ) a la 1.6 estable y eso cambia muchas cosas.
De entrada con el JUpgrade, extensión responsable de dicha migración, olvídate de cambios del core, los perderás todos, matizo "todos" y no te habrá servido de mucho.
Hay soluciones alternativas interesantes, instalar extensiones como RSFirewall o JSecure que te dan un control total sobre las visitas del sitio y la limitación de IPs de forma individual o por rangos (ya hemos hablado aquí de este tema anteriormente, puede usar el buscador de foro y localizar "bloqueos+ip+rangos" para más información).
- JSecure: http://extensions.joomla.org/extensions/access-a-security/site-security/login-protection/12254
- RSFirewall: http://extensions.joomla.org/extensions/access-a-security/site-security/site-protection/8968
Aprovecha también para mirar algunas de las extensiones para la gestión de IPs y accesos: http://extensions.joomla.org/extensions/access-a-security/site-access
Saludos
Gracias a ambos por las respuestas. Probaré las opciones que me comentais.
Se que es una faena la modificación manual del core. No obstante, a vosotros que sois espertos en la materia, os hago una sugerencia al respecto que igual os puede gustar/interesar.
Hace muchos años, tenía un foro hecho en perl. Este foro, manejaba muchos addons hechos por los usuarios, algunos algo complejos de integrar en el código del foro por la cantidad de lineas que había que modificar. Para solucionar este problema, se programó una aplicación bajo windows que listaba todos estos addons, te permitía escoger los que quisieras, y te los instalaba de forma automática dentro del código del propio foro. Recuerdo que usaba archivos txt donde se ponía el archivo que había que modificar, el texto que había que buscar, y la modificación que se integraría en el archivo. De este modo, cualquiera podía hacer modificaciones e irlas cargando a la aplicación, y del mismo modo, distribuirlas para otros usuarios.
Ahi dejo la idea.
Saludos y mi agradecimiento.
Hola Francis,
Perl se usaba mucho en los inicios de la web para desarrollo web debido a la potencia que tiene el lenguaje para el procesamiento de texto. Después se fueron viendo sus debilidades y fueron saliendo alternativas mejor enfocadas al desarrollo web, lenguajes más modernos con mejores implementaciones de POO etc.. Precisamente estos lenguajes más modernos evitan hacer lo que en Perl se hacía mucho, introducir código Spagueti en el software.
En PHP ya casi se ha conseguido, aunque esto depende mucho del programador que esté detrás de cada script..
El método que nos comentas de mantener software es una buena idea, y sirvió en el pasado, pero rompe con todos los paradigmas y patrones de programación actuales, Joomla es un sistema programado usando un patron de componentes, modulos, plugins, etc... precisamente para hacer Joomla reutilizable... implementando un sistema así nos cargamos este sistema.
Lo correcto sería desarrollar un plugin de sistema que se ejecute en el evento onPageLoad de Joomla y que lleve un recuento de las IPs que van accediendo al sistema. Ya hay soluciones hechas por terceros, Una solución gratuita es la que te he comentado yo antes y otra solución de pago es la que te ha comentado Alejo (gnumax).
Saludos.
Hola David,
Seria interesante saber como gestiona los datos el plugin JBIpLogger y si esta debe ser en conjunción con otra extensión tal como indicabas en anterior post.
En parámetros la información que gestiona es bastante básica y entiendo que hay extensiones mucho más completas como IPBlock para gestionar bloqueos.
Personalmente sigo considerando que los bloqueos más efectivos (después del servidor 😉 ) son los realizados a nivel usuario desde su archivo htaccess.
Saludos
La cuestión no es tanto una herramienta para realizar un bloqueo a un usuario, como el disponer de la información necesaria para hacerlo de forma efectiva.
Creo que la mejor forma de bloquear a un usuario es añadiendo un deny from IP o rango IP al archivo .htaccess, para que el bloqueo sea a nivel de servidor y no a nivel del CMS. Pero como ya he dicho, el fondo de la cuestión está en tener un muestreo de datos suficiente para hacerlo. Si bloqueamos a un usuario disponiendo solo de su ultima IPs, dificilmente podremos impedir que ese usuario vuelva a registrarse en la web. Sin embargo, si disponemos de un muestreo de por ejemplo 50 o 100 ips distintas, el bloqueo añadiendo además rangos, puede ser efectivo durante un tiempo bastante razonable, y con ello conseguir que esa persona nos deje de ser molesta. Está claro que siempre pueden acudir a proxies anonimos, pero bueno, esto no es algo habitual en usuarios que simplemente son molestos.
Saludos.
Francis.
He revisado el plugin JBIpLogger, y hace algo similar a lo que quiero, pero de manera muy poco práctica.
El plugin registra cada acceso a la web y guarda en un archivo de texto los datos que captura, el problema es que cuando ese archivo se haga grande, buscar allí los datos va a ser terriblemente tedioso y complicado. Además, el sistema guarda cada conexión y cada lugar de acceso, y esos datos para la función que pretendo estarían de sobra. Sería ideal si se pudiese enlazar el plugin a una base de datos y guardar alli los datos.
En fin, divagaciones.
Saludos.