C# 在ASP.NET和SSL中保护Cookie

C# 在ASP.NET和SSL中保护Cookie,c#,asp.net,session,cookies,C#,Asp.net,Session,Cookies,假设我只部署了一个ASP.NET网站作为SSL。这是否意味着我不必担心使用以下链接中概述的方法显式加密cookie以保护它们 还是应该在web.config文件中添加此代码 <system.web> <httpCookies httpOnlyCookies="true" requireSSL="true" /> <system.web> 注意 我不是在代码中明确地创建cookie。它们是创建会话的结果 这是否意味着我不必担心使用以下链接中概述的

假设我只部署了一个ASP.NET网站作为SSL。这是否意味着我不必担心使用以下链接中概述的方法显式加密cookie以保护它们

还是应该在web.config文件中添加此代码

<system.web>
  <httpCookies httpOnlyCookies="true" requireSSL="true" />
<system.web>

注意

我不是在代码中明确地创建cookie。它们是创建会话的结果

这是否意味着我不必担心使用以下链接中概述的方法显式加密cookie以保护它们

这在很大程度上取决于您在这些cookie中存储了什么信息,以及您是否关心用户是否能够操纵这些信息。例如,FormsAuthenticationCookie总是加密的,因为它们包含当前已验证的用户名。如果它们没有加密,用户只需伪造一个请求,并将其用户名替换为例如
admin
。cookie通过SSL发送的事实对他来说绝对不是障碍

另一方面,如果您正在存储一些用户首选项,例如背景主题,您可能不会在意用户是否伪造了一个请求,在该请求中他将背景颜色从蓝色更改为红色,对吗

因此,总结一下:如果您不希望用户能够修改cookie的值,那么应该对其进行加密,无论它是否通过SSL发送


SSL用于防止中间人攻击,在这种攻击中,最终用户cookie值可能被中间人窃取。

您不制作自定义cookie,因此让我们看看asp.net创建了哪些cookie

它创建两个主cookie,一个用于会话,另一个用于登录凭据

现在,从您的角度,您必须决定哪些信息是关键的,需要确保安全

如果您已经确定所有用户信息都是敏感的,需要保护,那么您可以使所有页面ssl安全,并在
httpCookies
authentication|forms
上添加
requireSSL=“true”

<authentication mode="Forms">
  <forms requireSSL="true" ... />
</authentication>
如果您确定只有一些页面是敏感数据,则这是必须登录的页面,这是必须使用安全ssl的页面,然后您使用
requireSSL=“true”
仅用于
身份验证|表单

<authentication mode="Forms">
  <forms requireSSL="true" ... />
</authentication>


您好,马修先生,您是否得到了关于如何最终做到这一点的答案?我真的需要它。