我对 SSL 知之甚少,所以在迁移到 HTTPS 之前我有几个问题。
经过大量阅读,现在我理解了公钥和私钥交换。客户端和服务器交换非对称 key ,以便最终它们可以拥有对称 key 。
这里有几个问题:
一旦用户提供了他的用户名和密码以及凭据就可以了,我将在 session 中保存该用户。
上下文.Session["用户"]
。在所有 future 的页面上,我将确保Context.Session["user"]
不为 null 以呈现页面。这样会安全吗?客户端不仅是 Web 浏览器,也是控制台应用程序。如何防止控制台应用程序在每次发出请求时都必须交换 key ?有什么方法可以防止某些页面通过 https 访问而通过 http 访问?
我相信维护 session 是必不可少的,否则对于每个请求我都必须等待 key 交换?如果用户登录到数据库而不是 session 中,保存保存是个坏主意吗?
最佳答案
如果您以正确的方式使用 Microsoft asp.net,那么 SSL 是非常透明的。也不要为 SSL 使用自签名证书,这不是一个好主意。此外,一些 WCF 服务需要重新配置才能使用 SSL。
在 session 中而不是 cookie 中存储用户信息不是最佳主意。但无论如何它都可以正常工作。它也可以在 ssl 中正常工作。
基于控制台应用程序。如果根(或服务器)证书将在受信任的根列表中,并且控制台应用程序是使用 .NET 编写的并使用 WebRequest 或 WCF - 将不会有任何问题。您也可以尝试使用 ServicePointManager.ServerCertificateValidationCallback = delegate { return true; 接受所有证书}; 但是,如果您的应用程序使用套接字或类似的东西——您可能会遇到问题。
这是一个非常快速和透明的 key 交换过程。不用额外担心。
无论如何,您都可以将 IIS 和应用程序配置为只能从受信任的区域访问 http,而对于任何其他地方都可以访问 https。
关于asp.net - 从 HTTP 到 HTTPS 时的考虑因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22023052/