mitigación CSRF en MVC

0

Me pregunto cuál es la mejor manera de protegerse contra CSRF en MVC o cualquier otra aplicación web sin estado. Debido a la naturaleza sin estado, no podemos mantener un token secreto en la sesión y compararlo con el secreto que luego aceptó el cliente. Mi pregunta es: ¿cómo podemos evitar que un usuario malintencionado ataque por CSRF? Tenga en cuenta que no estoy buscando una información de implementación específica como "usar AntiForgeryToken ()". Cualquier información relacionada será útil. Muchas gracias.

    
pregunta pert123 07.03.2013 - 13:18
fuente

1 respuesta

1
  

en MVC o cualquier otra aplicación web sin estado

Tu terminología es bastante confusa. Cualquier aplicación que enfrenta el usuario es una jerarquía de patrones MVC. MVC rara vez es sin estado, de hecho, en los casos en que es sin estado (servidor), hay muy pocos riesgos de CSRF. Su pregunta es realmente acerca de la gestión de sesiones.

A falta de administración de sesión, la única forma que conozco para resolver el problema es a través de OTP, pero podría decirse que esta administración de sesión es ya que la OTP debe conservarse hasta que se use, y la información sobre la OTP modificada cuando se usa.

Si considera el caso de la publicidad de pago por clic: no está confiando en la información que proporciona el usuario, sin embargo, sí necesita realizar un seguimiento de los recuentos, por lo que la aplicación no deja de ser apática. Puede evitar la necesidad de mantener una sesión utilizando (por ejemplo) las huellas dactilares del navegador, pero luego debe mantener una lista (estado) de huellas dactilares que ya se considera que "hizo clic". La aplicación no es Ya sin estado con respecto al dispositivo cliente y hay una sesión. Realmente no es tan diferente de colocar una cookie en el navegador y leerla más tarde.

Dado que también resuelve muchos otros problemas, mantener una sesión al lado del servidor es la mejor solución.

    
respondido por el symcbean 07.03.2013 - 15:09
fuente

Lea otras preguntas en las etiquetas