asp.net - 从 HTTP 到 HTTPS 时的考虑因素

标签 asp.net security ssl

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

经过大量阅读,现在我理解了公钥和私钥交换。客户端和服务器交换非对称 key ,以便最终它们可以拥有对称 key 。

这里有几个问题:

  1. 一旦用户提供了他的用户名和密码以及凭据就可以了,我将在 session 中保存该用户。 上下文.Session["用户"] 。在所有 future 的页面上,我将确保 Context.Session["user"] 不为 null 以呈现页面。这样会安全吗?

  2. 客户端不仅是 Web 浏览器,也是控制台应用程序。如何防止控制台应用程序在每次发出请求时都必须交换 key ?有什么方法可以防止某些页面通过 https 访问而通过 http 访问?

  3. 我相信维护 session 是必不可少的,否则对于每个请求我都必须等待 key 交换?如果用户登录到数据库而不是 session 中,保存保存是个坏主意吗?

最佳答案

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

  1. 在 session 中而不是 cookie 中存储用户信息不是最佳主意。但无论如何它都可以正常工作。它也可以在 ssl 中正常工作。

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

  3. 这是一个非常快速和透明的 key 交换过程。不用额外担心。

无论如何,您都可以将 IIS 和应用程序配置为只能从受信任的区域访问 http,而对于任何其他地方都可以访问 https。

关于asp.net - 从 HTTP 到 HTTPS 时的考虑因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22023052/

相关文章:

http push - 使用 ssl 的 http 流媒体方法 - 代理会干扰 https 流量吗?

c# - 如何强制 asp.net 控件重新加载回发数据?

c# - 基于服务器端变量的 HTML 属性?

windows - 登录 Windows 用户的 API

security - 允许其他用户访问 EC2 实例

c# - 安卓 Xamarin C# : Https with ServiceStack and self signed certificates

java - 当我们将信任管理器与 trustCertCollectionFile 一起使用时,Netty 会跳过主机名验证

asp.net - Entity Framework : disable delete globally

c# - 列出 C# 中 System.Security.Claims.ClaimTypes 中存储的所有声明类型

web-services - 为什么 Web 服务安全需要单独的标准?