2011-12-03 13 views
9

Escribo una aplicación web principalmente impulsada por ajax y estoy buscando cómo proteger al usuario de los ataques CSRF. Estoy planeando ejecutar las páginas de la aplicación donde el usuario está conectado para hacer su trabajo en modo HTTPS.¿HTTPS protege contra ataques CSRF?

¿Funciona la ejecución de la página en HTTPS para proteger contra los ataques de CSRF?

+1

Es Solicitud CSRF (Cross-Site Falsificación) no RFCE – CodesInChaos

+0

@CodeInChaos: ok, gracias por la edición – frenchie

+0

Recuerde [inicio con un poco de investigación] (http://en.wikipedia.org/wiki/Cast-site_request_forgery) sobre qué causa dicha vulnerabilidad. –

Respuesta

16

No, ejecutar una página en HTTPS no lo protege de CSRF. El hecho de que las comunicaciones entre el navegador y el servidor estén encriptadas no tiene relación con CSRF.

Sugiero leer la guía de OWASP en preventing CSRF.

+0

Ok, gracias Oded por la respuesta. – frenchie

+0

¿Cuál es su recomendación para asegurar las transacciones de ajax? La presentación del formulario parece estar bien documentada, pero ajax lo es mucho menos. – frenchie

+0

@frenchie: casi todo lo que se aplica a los envíos de formularios se aplica a ajax, así como a XSS. – Oded

2

Una regla general, de oro woule ser:

Nunca confiar en que la solicitud del cliente entrante es legítima. Sea siempre sospechoso y suponga que la solicitud podría falsificarse de forma malintencionada.

algunas reglas específicas más allá del artículo mencionado OWASP:

  1. si sus datos necesidades de autenticación/autorización, evite interfaces genéricas en el servidor, como la interfaz CRUD. fácil de codificar, difícil de autorizar solicitudes específicas provenientes de clientes. en su lugar, ofrecen una interfaz de estilo SOA con métodos explícitos dedicados a casos de uso específicos donde tendrá control directo sobre las solicitudes y sus parámetros.

    http://msdn.microsoft.com/en-us/library/ms954638.aspx

  2. incluso si el marco proporciona algún control sobre la validez solicitud (ASP.NET estado de vista), comprobar de nuevo si el usuario está autorizado para pasar el conjunto de parámetros de entrada.

+0

The viewstate? Mi solicitud va a la página con $ .ajax, así que no puedo usar los datos de viewstate para una devolución de datos. – frenchie

+0

Esto fue solo un ejemplo de mecanismo de validación específico. –

Cuestiones relacionadas