Get it on Google Play

Uso de captchas en Liferay

30-05-2012
 

Para los que no estéis familiarizados con el termino, captcha son esas imágenes tan difíciles de leer donde hay que adivinar que frase es para demostrar que somos una persona y no una máquina los que estamos rellenando un determinado formulario.

El uso de captchas, aunque no es una solución muy elegante, a veces hay que hacerlo para evitar que nos frían a spam. En Liferay solucionaríamos así el uso de captchas en formularios:

El código esta dividido en dos partes, la parte de la vista(JSP) donde se mostrará el captcha y la parte de la clase controladora, donde a través de una petición tipo Action controla si el captcha enviado concuerda con el captcha propuesto. Para servir la imagen lo hacemos a través de una petición tipo Resource, donde usamos la clase ‘com.liferay.portal.kernel.captcha.CaptchaUtil.serveImage’ para servir la imagen del captcha.

Interesado en formación Liferay?

 

Comments

8 Responses to “Uso de captchas en Liferay”
  1. Emmanuel Montero says:

    Hola que tal Albert

    El motivo de estes para preguntarte si alguna vez haz integrado el recaptcha de google a liferay? y ademas cambiado el tema a este? lo pregunto por que yo he intentado cambiar el tema pero no he podido, se queda en el tema por defecto. Te agradecere la ayuda.

  2. Hola Emmanuel, la verdad es que no lo he probado. No soy muy partidario de captchas y el de Google es muy complicado, a mi me cuesta muchas veces demostrar que no soy un robot. Me lo tendría que mirar…

  3. Sergi says:

    Para los que no estamos muy familiarizados, todavía, con la programación en Liferay. Si quiero añadir el captcha en el portlet de login de liferay, que debo hacer?, que archivos he de tocar?, tienes alguna especie de guía o indicaciones para noveles?. Saludos Alberto y felicidades por el blog.

  4. Hola Sergi,

    Pues no tengo ninguna guía ni nada por el estilo. Lo que deberías hacer es un Hook con el plugins SDK que hiciera dos cosas:

    – Sobrescribir el JSP de turno para poner el captcha.
    – Crear un LoginAction para validar el captcha antes de nada.

    Espero que te valga.

    Saludos,

  5. Sergi says:

    Hola Alberto. ya he creado el hook de login y en la login.jsp he puesto el captcha (lo he sacado de forgot_password.jsp). Ahora me aparece en el login, pero me falta que valide. Donde he de crear el LoginAction dentro del hook? es un archivo .java?…disculpa pero no estoy muy familiarizado con la programación en liferay… me puedes decir algo más para crear el LoginAction?

  6. Hola Sergi,

    Pues para eso te voy a dejar que busques un poco por allí, mírate por ejemplo este post en los foros de Liferay https://www.liferay.com/community/forums/-/message_boards/message/11684612

    Saludos,

  7. Javi Gutierrez says:

    Hola Albert

    ¿Que tan recomendable consideras tu el captcha que maneja el portlet de webform (tengo liferay 6.0 EE)?. Lo que pasa es que recientemente a pesar de que lo tengo instalado en mis formularios, me han llegado correos con información basura (parecieran estar siendo llenados por un robot, ya que detecto que incluyen los parámetros p_p con información erronea inclusive)

    08:18:18,626 INFO [PortalImpl:3850] Current URL /misformularios/miformulario?p_p_col_count=1&p_p_col_id=column-1&p_p_id=1_WAR_webformportlet_INSTANCE_1121&p_p_lifecycle=1&p_p_mode=V1Mo3v6K&p_p_state=normal&_1_WAR_webformportlet_INSTANCE_1121_javax.portlet.action=saveData generates exception: v1mo3v6k
    08:18:18,633 INFO [ServiceExecutor:71] response time for ECM:23 ms
    08:18:18,652 ERROR [jsp:2071] javax.portlet.PortletModeException: v1mo3v6k
    javax.portlet.PortletModeException: v1mo3v6k

    ¿Crees que haya alguna forma de evitar que me llegue esta informacion basura (algun parche, workaround)?
    ¿Cual sería tu recomendación?

  8. Hola Javi,

    Pues así de golpe no te sabría decir. Tengo varios clientes que lo usan(No en el webform) y no tienen problemas, pero la verdad es que no hay ningún captcha infalible y el de Liferay a veces es muy complejo y a veces es muy simple.

    No tengo ninguna solución para eso 🙁 . Pero puedes mirar de instalar algún servicio como CloudFlare que te protegen bastante de los robots ( Pero tampoco es infalible 🙁 ).

    Saludos,

Leave a Reply

© Albert Coronado Calzada