3

注意:这不是与 [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 会话,则必须确保身份验证票证永远不会通过不安全的通道传输。

4

1 回答 1

2

因为如果你打开它,你需要一个 SSL 证书,而这些证书通常需要花钱才能获得。您还可以使用浏览器会话来控制非安全信息——在某些公共网站中,这可能正是您想要做的。在这种情况下,窃取他人会话 cookie 的人不会泄露任何敏感信息 - 那么,为什么还要花钱购买和安装 SSL 证书呢?

于 2010-11-25T12:43:45.960 回答