gpt4 book ai didi

asp.net - 跨安全和非安全共享身份验证

转载 作者:行者123 更新时间:2023-12-02 16:34:45 26 4
gpt4 key购买 nike

我的情况是,我正在工作的网站,管理员希望允许用户登录,而不用担心他们是通过 http 还是 https 登录。基于另一个SO问题(how can I share an asp.net session between http and https),我认为如果我在cookie上设置secure = false,这是可能的。除此之外,我们使用子域作为网站的安全部分。因此,对于 http,我们使用 site.com,而 https 使用 secure.site.com。所以我尝试在 web.config 中设置身份验证的域。

<authentication mode="Forms">   
<forms loginUrl="/account/login"
protection="All" timeout="30" name=".ASPXAUTH" path="/"
requireSSL="false" slidingExpiration="true" defaultUrl="/"
cookieless="UseDeviceProfile" domain="site.com"
enableCrossAppRedirects="false" />
</authentication>

我做的这一切都是错的吗?我知道存在一些安全问题,我将在提出请求时解决这些问题。我只想让用户登录一次并通过 http 和 https 被记住。谢谢。

最佳答案

我认为您的 web.config 中的域错误。您应该将其更改为

domain=".site.com"

因此,您允许表单例份验证 cookie 同时存在于 ssl.site.com 和 no-ssl.site.com 域中。

话虽这么说,任何类型的安全性都以 https://开头,覆盖您的所有解决方案 - 否则您可能会遭受中间人攻击(网络代理可以将不适当的内容注入(inject)您的解决方案中,他们可以窃取您的授权 cookie 并在 https://ssl.site.com 等流程中使用它。

关于asp.net - 跨安全和非安全共享身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38357556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com