从HTTP到HTTPS时要考虑的注意事项

时间:2014-02-25 18:31:03

标签: asp.net security ssl

我对SSL知之甚少,所以在迁移到HTTPS之前我有几个问题。

所以一直在做很多阅读,现在我了解公钥和私钥交换。客户端和服务器交换不对称密钥,以便最后它们可以具有对称密钥。

以下是几个问题:

  1. 一旦用户提供了他的用户名和密码,凭证就可以了,我会将该用户保存在会话中。 Context.Session["user"]。在以后的所有页面中,我将确保Context.Session["user"]非空为了呈现页面。这样会安全吗?

  2. 客户端不仅仅是Web浏览器也是控制台应用程序。如何防止控制台应用程序每次执行请求时都必须交换密钥?有没有办法阻止某些页面通过https访问并通过http访问?

  3. 我相信,对于我必须等待交换密钥的每个请求,必须保持一个会话?如果用户登录数据库而不是会话时保存了一个坏主意?

2 个答案:

答案 0 :(得分:1)

如果您以正确的方式使用microsoft asp.net,那么SSL非常透明。也不要使用自签名证书进行SSL,这不是一个好主意。此外,还需要重新配置一些WCF服务以使用SSL。

  1. 最好不要在会话中存储用户信息而不是cookie。但无论如何它都可行。它也可以在ssl中正常工作。

  2. 基于控制台应用程序。如果根(或服务器)证书将在受信任的根列表中,并且控制台应用程序是使用.NET编写的并使用WebRequest或WCF - 则不会出现任何问题。您还可以尝试使用ServicePointManager.ServerCertificateValidationCallback = delegate接受所有证书{return true; }; 但是,如果你的应用程序使用Sockets或类似的东西 - 你可能会遇到问题。

  3. 这是一个非常快速和透明的密钥交换过程。别担心它。

  4. 无论如何,您可以将IIS和应用程序配置为仅从受信任区域访问http,并访问任何其他位置的https。

答案 1 :(得分:1)

部分答案:

  1. 是。您可能希望在母版页中进行检查,如果您正在使用,则确保您不要忘记进行检查。

  2. 您可以使用SecuritySwitch在特定页面的http和https之间轻松切换。到目前为止,它在我的测试中完美无缺。