【问题标题】:asp.net core cookies issueasp.net 核心 cookie 问题
【发布时间】:2020-10-29 11:19:16
【问题描述】:

我在同一台服务器上运行了两个 asp.net 核心应用程序,当一个应用程序将值设置为 cookie 时,另一个应用程序可以访问它,我为每个应用程序设置了不同的 cookie 名称,但它仍然没有变化。

第一次申请

services.ConfigureApplicationCookie(option =>
        {
            option.Cookie.Name = "FirstApp_CookieName";
            option.Cookie.HttpOnly = true;
            option.Cookie.IsEssential = true;
            option.Cookie.SecurePolicy = Microsoft.AspNetCore.Http.CookieSecurePolicy.Always;
            option.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict;
        });

第二次申请

services.ConfigureApplicationCookie(option =>
            {
                option.Cookie.Name = "SecondApp_CookieName";
                option.Cookie.HttpOnly = true;
                option.Cookie.IsEssential = true;
                option.Cookie.SecurePolicy = Microsoft.AspNetCore.Http.CookieSecurePolicy.Always;
                option.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict;

            });

有人可以帮忙吗?

【问题讨论】:

    标签: asp.net-core cookies


    【解决方案1】:

    很难防止同域和https站点访问您的浏览器的cookie。第一件事是最好避免在cookie中包含敏感数据。如果您需要将它们存储在cookie中,请使用您的加密数据自己的方法。另一种选择是将数据保存在服务器端,但在 cookie 中添加一个标识(例如 Guid)以链接服务器上的真实数据。

    【讨论】:

    • 它没有回答我的问题,我需要阻止两个应用访问另一个应用的 cookie。
    • @mhdsh,好的,我误解了你的问题,请参阅更新的回复。
    【解决方案2】:

    我建议您的另一个选择是将您的身份验证更改为JWT Authentication。由于cookie authentication 每次发出请求时都会发送应用程序cookie,无论请求是否需要身份验证,JWT authentication 不需要。此外,如果您为特定用户返回 JWT token,即使同一域中有许多应用程序,他们也无法使用不是从域生成的令牌登录到另一个域,因为您将配置每个身份验证机制仅适用于该应用程序。

    【讨论】:

      【解决方案3】:

      请尝试为每个cookie设置不同的域\子域名,这将解决问题

      请在代码中添加以下内容 httpCookie.Domain = ""

      SAMISITE

      【讨论】:

        猜你喜欢
        • 2020-04-20
        • 2017-02-09
        • 1970-01-01
        • 2019-04-24
        • 1970-01-01
        • 2017-02-01
        • 2021-06-26
        • 1970-01-01
        相关资源
        最近更新 更多