5

我有一个网站,它完全通过 HTTPS。即使有人尝试通过 HTTP 访问,他也会被重定向到 HTTPS。我正在使用表单身份验证。最近我更改了一个设置以使站点更安全,之后 Session 不再保留值并且总是返回 null。设置是,

<httpCookies httpOnlyCookies="true" requireSSL="true"/>
<sessionState cookieless="false"/>

我不知道如何解决这个问题。我该如何解决这个问题?另外,如果我不使用此设置,我的网站是否容易受到攻击?认为其他一切都是安全的。

4

1 回答 1

4

你的问题太笼统了,没有太多线索,所以我可以给你一些继续前进的观点。

[1]还在domaincookie 上设置 ,没有www.,因此即使错误地丢失了 www 也可以读取和设置 cookie。

<httpCookies domain="yourdomain.com" httpOnlyCookies="true" requireSSL="true"/>

[2]您还需要设置<forms...类似的参数(以及您设置的其他参数)

<forms name=".klidi" path="/" requireSSL="true" cookieless="UseCookies" 
   domain="yourdomain.com" enableCrossAppRedirects="false" 
        slidingExpiration="true" />

[3]你还需要设置<roleManager类似的参数。

<roleManager enabled="true" cacheRolesInCookie="false" cookieProtection="All" cookieSlidingExpiration="true" 
           cookieTimeout="20" domain="yourdomain.com" cookieRequireSSL="true">

最后最重要的是在你的代码上设置这一行,然后再尝试设置或使用任何 cookie,看看你是否错误地没有使用安全连接https

Debug.Assert(HttpContext.Current.Request.IsSecureConnection, "With out https, cookie will not work");

通过设置最后一行,当您创建站点时,您可以在计算机上查看并诊断问题是否来自非安全连接,因为从您设置requireSSL为 true 的那一刻起,任何简单的连接都不会保存任何 cookie。

如果 cookie 存在不安全并且您有任何冲突,请尝试清除您的 cookie,或者尝试其他浏览器。

您还可以阅读:一些黑客可以从用户那里窃取 cookie 并在网站上使用该名称登录吗?

于 2012-09-20T06:00:38.023 回答