注意:这不是与 [RequireSSL] 属性相关的 ASP.NET MVC 问题。那是完全不同的——只是有相同的名字。
ASP.NET Forms 身份验证具有RequireSSL属性,该属性要求 ASP.NET 成员身份的身份验证 cookie 仅通过 SSL 发送。这是为了防止有人窃取 cookie(例如通过网络嗅探)并冒充用户。
所以我想知道 - MS 所做的所有安全意识更改(例如默认设置httpOnly cookie)为什么requireSSL
不默认为true
?
cookie 嗅探是否被视为“微不足道”的安全风险?
除非连接实际上允许我访问安全/个人数据,否则将其保留为假是否被认为是可接受的风险?如果这是不可接受的 - 我应该如何将用户返回到 http 并且仍然知道他们是谁?
为防止表单身份验证 cookie 在通过网络时被捕获和篡改,请确保对所有需要身份验证访问的页面使用 SSL,并通过在元素上设置 requireSSL="true" 将表单身份验证票证限制为 SSL 通道。
将表单身份验证 cookie 限制为 SSL 通道
在元素上设置 requireSSL="true",如下代码所示。
通过设置 requireSSL="true",您可以设置确定浏览器是否应将 cookie 发送回服务器的安全 cookie 属性。设置了安全属性后,浏览器只会将 cookie 发送到使用 HTTPS URL 请求的安全页面。
注意:如果您使用无 cookie 会话,则必须确保身份验证票证永远不会通过不安全的通道传输。