Pregunta

En asp.net Me estoy poniendo en práctica un IHttpModule para mitigar los ataques CSRF. Se inyecta en la respuesta HTML un parámetro de forma oculta con el SessionID asp.net en sufran. En postes entonces esta comprueba para asegurarse de que el valor del parámetro oculto coincide con la corriente SessionID. Por lo que yo sé, la única manera de obtener el valor SessionID es de la galleta, que no pudo ser leído o determinado por el sitio malicioso. ¿Hay algo que se me escapa?

¿Fue útil?

Solución

Este enfoque es correcto. Es necesario asegurarse de que todas las acciones disponibles a través de una operación GET son "seguros" (que es la mejor práctica de todos modos), puesto que está solicitando su protección XSRF a sólo puestos.

Para obtener un seguro adicional, se puede usar en hace demasiado (mediante la adición de un parámetro de URL para todos los vínculos, y la comprobación de que en cada petición GET), pero es engorroso.

Si usted es paranoico adicional, se puede elegir un número aleatorio diferente para el ID alternativo. Esto protegería que incluso si un navegador de forma incorrecta hace que su cookie de sesión accesible para algunos Javascript hostil en otro sitio. Cuando se crea una sesión, elija otro número aleatorio grande y almacenarlo en la sesión.

Otros consejos

Lo ideal sería que usted quiere usar algo distinto del ID de sesión, pero básicamente eso es todo. OWASP sugiere el uso de un nombre de elemento de forma aleatoria que se almacena en la sesión del usuario. De esta manera un atacante aún no sería capaz de forjar el campo oculto correcta.

http://www.owasp.org/index.php/Top_10_2007 -A5 # Protección

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