准备我的ASP.NET/MVC站点使用SSL?

Ral*_*h N 17 asp.net-mvc ssl

我正准备SSL cert在我的主机上安装一个.

这是我的理解(并纠正我,如果我错了......):

  1. 一旦托管人员安装证书,我将能够浏览我的网站HttpHttps(没有什么能阻止我继续使用Http)?

  2. 我唯一需要做的就是添加逻辑(在MVC的情况下,控制器属性/过滤器)来强制我选择的某些页面重定向到Https(例如,[RequiresHttps]谨慎地添加属性).

我是否必须担心做这些事情以确保我使用SSL得当?我不确定我是否需要改变与逻辑有关的东西:

  1. 饼干

  2. PayPal Express集成

此外,我计划[RequiresHttps]仅添加购物车,结帐,登录,帐户和管理页面.我希望保留我的产品浏览/购物页面,Http因为我听说有更多的使用开销Https.这是正常/可接受/好吗?

还有一个问题......我知道ASP.NET以Auth cookie的形式存储一些登录信息.用户可以在Https页面中登录,但是可以返回并在Http页面中浏览吗?我想知道这是否会造成安全漏洞,因为用户已登录并Http再次浏览.这会破坏使用的重点SSL吗?

我在这方面有点新意......所以请帮助我们.

Ari*_*tos 15

从你的问题开始,一,(1)是的,没有什么会阻止你使用相同的页面http ether https.

(2)是的,您需要在哪个页面上显示仅作为https和http的内容添加逻辑.如果有人想知道,为什么不将全部显示为https,原因是速度,当你将它们作为https发送时,页面更大,编码/解码需要更多一点,所以如果你不需要https,只需切换它到http.

在HTTP和HTTPS之间切换自动是一个非常好的代码,用于快速简便地实现切换逻辑.

饼干

当cookie与用户的凭证有关时,您需要强制它仅使用安全页面进行传输.这意味着,如果您使用https设置cookie,则此cookie不会在非安全页面上传输,因此保持安全并且中间的人不能窃取它.这里的提示是无法在http页面上读取此cookie - 因此您可以知道用户是A或B仅在安全页面上.

购物车 - 产品

是的,这是正常的:将产品和购物车放在不安全的连接上,因为信息不是那么特别.当您使用用户真实数据(如姓名,电子邮件,地址等)时,可以启动https页面.

验证cookie

如果您将其设置为仅安全,则此cookie不会在不安全的页面上显示/读取/存在.如果你不让它安全,这是一个问题.

Response.Cookies[s].Secure = true;
Run Code Online (Sandbox Code Playgroud)

几句话

我们对安全和非安全页面的处理是我们实际上将用户数据分为两部分.一个是安全的,一个不是.所以我们实际使用两个cookie,一个是安全的,一个是不安全的.

不安全的cookie是例如连接购物车上所有产品的cookie,或者可能是用户的历史(产品看到的)这也是我们实际上并不关心是否有人得到它因为即使是代理也可以看到从url用户历史记录,或用户看到的内容.

安全cookie是身份验证,为用户保留一些关键信息.因此,非安全cookie与页面上的用户无关,安全仅在签出时,登录时等.

有关

MSDN如何:保护窗体身份验证在ASP.NET 2.0
只在登录页面设置SSL页面
有些黑客可以从用户窃取cookie并与一个网站,名字登录?