¿Cómo puedo evitar la falsificación de solicitudes entre sitios con Perl y Apache?

StackOverflow https://stackoverflow.com/questions/841957

  •  20-08-2019
  •  | 
  •  

Pregunta

¿Hay alguna biblioteca transparente que pueda usar o algo fácil para que pueda evitar cross-site solicitar falsificación (CSRF) con Perl y Apache? ¿Cómo puedo generar tokens para formularios y validarlos en el lado del servidor?

¿Fue útil?

Solución

Para proteger de " Falsificación de solicitud entre sitios " desde el lado del servidor, es mejor:

  1. Use HTML escape. Si usa algún sistema de plantillas como Template Toolkit, debe usar sus capacidades de escape. Si usa CGI.pm, tiene & Quot; escapeHTML & Quot; sub para hacer esto.
  2. Limite el tiempo de vida de las cookies de sesión a períodos relativamente cortos. Para CGI :: Session se puede hacer con $ session - & Gt; expire ($ time).
  3. Verifique el referente al generar páginas vulnerables.
  4. No use / acepte la solicitud GET para modificar datos.

Hacer esto es específico del marco pero simple.

Otros consejos

Eche un vistazo a lo que CGI :: Application :: Plugin: : ProtectCSRF lo hace. Este módulo es para el marco de aplicación CGI ::.

No debería ser demasiado difícil modificar el módulo para otros marcos. Básicamente, los formularios de usuario obtienen un campo HTML oculto agregado con el token generado, y el objeto de sesión obtiene el mismo token. Cuando se envía el formulario, el token enviado por el formulario se compara con el token en el objeto de sesión (que está en el servidor). Si no coinciden, es probable que se haya producido un CSRF.

También hay un complemento de Catalyst: Catalyst :: Controller :: RequestToken

Estos módulos usan controladores de atributos, por lo que se requiere muy poca modificación para su aplicación existente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top