es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambios en el lado del cliente si establecemos HttpCookie.HttpOnly como true.

En .net Core, utilizamos la característica de configuración de protección contra falsificación con IAntiforgery junto con [ValidateAntiForgeryToken] o AutoValidateAntiforgeryToken para prevenir ataques de falsificación de solicitudes entre sitios (XSRF/CSRF).

Para configurar la característica de protección contra falsificación en el middleware, utilizamos:

var antiforgery = app.Services.GetRequiredService<IAntiforgery>();

app.Use((context, next) =>
{
    var requestPath = context.Request.Path.Value;

    if (string.Equals(requestPath, "/", StringComparison.OrdinalIgnoreCase)
        || string.Equals(requestPath, "/index.html", StringComparison.OrdinalIgnoreCase))
    {
        var tokenSet = antiforgery.GetAndStoreTokens(context);
        context.Response.Cookies.Append("XSRF-TOKEN", tokenSet.RequestToken!,
            new CookieOptions { HttpOnly = false });
    }

    return next(context);
});

Enlace a la documentación de Microsoft

Ahora mi pregunta es, si establecemos new CookieOptions { HttpOnly = true });, ¿qué cambios debemos hacer en el lado del servidor y en el lado del cliente?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Si configuramos new CookieOptions { HttpOnly = True });, entonces en el lado del servidor no es necesario realizar ningún cambio adicional. Sin embargo, en el lado del cliente, debemos asegurarnos de no intentar acceder a cookies con el atributo “HttpOnly” a través de JavaScript.

    Las cookies con el atributo “HttpOnly” están destinadas a ser accesibles solo por el código del lado del servidor y no pueden ser accedidas por el código del lado del cliente (como JavaScript) por razones de seguridad. Si intentamos acceder a las cookies “HttpOnly” a través de código del lado del cliente, el navegador bloqueará la solicitud y no podremos acceder a las cookies.

    Por lo tanto, si establecemos HttpOnly = True, debemos asegurarnos de no acceder a las cookies “HttpOnly” a través de JavaScript. Aún podemos acceder al valor de la cookie en el código del lado del servidor si es necesario.

Comments are closed.