这是我的理解(如果我错了,纠正我)…)
>一旦主持人安装证书,我将能够浏览我的网站在Http或Https(没有什么会阻止我继续使用Http)?
>我需要做的唯一的事情是添加逻辑(在MVC的情况下,Controller属性/过滤器)强制我选择的某些页面重定向到Https(例如,谨慎添加一个[RequiresHttps]属性)。
我必须担心做些额外的事情,以确保我正在使用SSL吗?我不知道我是否需要改变与逻辑有关的东西:
>饼干
> PayPal Express集成
另外,我打算在购物车,结帐,登录,帐户和管理页面上添加[RequiresHttps]。我希望在Http上离开我的产品浏览/购物页面,因为我听说使用Https有更多的开销。这是正常/可接受/好吗?
还有一个问题…我知道ASP.NET以一个Auth cookie的形式存储一些登录信息。用户可以在Https页面中登录,但是可以在Http页面中返回浏览页面吗?我想知道是否创建了安全漏洞,因为用户再次登录并浏览Http。这是否破坏了使用SSL的意义?
我是一个新来的这个…所以帮助将不胜感激。
解决方法
和(2)是的,你需要添加你的逻辑在什么页面将仅显示为https和什么作为http。如果有人想知道,为什么不显示所有为https的原因是速度,当您发送它们作为https页面更大,编码/解码需要一点点,所以如果你不需要https,只需切换它到http
Switching Between HTTP and HTTPS Automatically是一个非常好的代码,用于实现切换逻辑快捷简单。
饼干
当cookie与用户的凭据有关时,您需要强制其仅在安全页面传输。这是什么意思,这意味着如果您使用https设置Cookie,则此Cookie不会在非安全页面上传输,因此保持安全,中间的人不能窃取。这里的提示是,这个cookie不能在http页面上读取,所以您可以知道用户是A,或者B只在安全页面上。
购物车 – 产品
是的,这是正常的:将产品和购物车放在不安全的连接上,因为信息不是特别的。当您使用用户实际数据(例如姓名,电子邮件,地址等)时,您可以启动https页面。
认证cookie
如果您将其设置为安全的,则该Cookie不会在不安全的页面上显示/读取/存在。如果您不安全,这是一个问题。
Response.Cookies[s].Secure = true;
几句话
我们用安全和非安全的页面做的是我们实际上将用户数据分为两部分。一个是安全的,而不是一个。所以我们实际上使用了两个cookie,一个是安全的,一个是不安全的。
不安全的cookie例如是连接购物车上的所有产品,或者可能是用户的历史(什么产品看到的),这也是我们实际上并不在意,如果有人得到它,因为即使代理可以看到从url的用户历史,或用户看到的。
安全cookie是认证,为用户保留一些关键信息。所以非安全的cookie是用户在页面上的任何地方,安全只是在签出,登录等等。
有关
MSDN,How To: Protect Forms Authentication in ASP.NET 2.0
Setting up SSL page only on login page
Can some hacker steal the cookie from a user and login with that name on a web site?