环境
IIS 6
.NET 3.5(网络表单
出于各种原因,我想在页面级别关闭 SSL。这是最佳做法吗?这样做时我应该注意什么?什么被认为是最安全的方法?我打算这样做的方式是
右键单击页面->导航到属性->单击文件安全->然后取消选中需要安全通道。
这会影响其他页面吗?任何帮助都会非常感谢
最佳答案
注意:我正在使用 .aspx
来表示 ASP.Net 页面,但通常应适用以下内容。
即使您取消选中 require secure channel,我相信它仍会使用安全通道(因为您告诉它 SSL 不是 required,但这并不意味着它仍然不能使用SSL)。例如,如果您从 secure_page1.aspx 导航到 unsecure_page2.aspx,它将默认通过 HTTPS(或第一页使用的任何协议(protocol))导航,即,当您单击特定页面时,它不会自动从 HTTPS 切换到 HTTP关联。唯一的方法是使用绝对 url 链接,即在 https://www.mydomain.com/secure_page1.aspx 上,您在页面上有一个链接:
<a href="http://www.mydomain.com/unsecure_page2.aspx">Link to unsecure page</a>
就我个人而言,如果网站需要任何 SSL 页面,我建议整个网站或网站的整个部分(例如订购系统)都采用 SSL 而不是仅需要安全的个别页面。这里的一个大问题是要记住,在用户输入表单之前,任何将发送关键信息的页面都必须是 SSL 。例如,不要将 Login.aspx 设为非 SSL,然后将 Login-Post.aspx(表单后操作 url)设为 SSL,因为那样不安全。
我必须承认我做过一个项目,其中的网站是 HTTP 和 HTTPS 的混合体,我们想强制用户的浏览器使用我们想要的协议(protocol)。这样做的主要原因是 HTTP 页面在服务器和浏览器上都比 HTTPS 更高效,因为加密会增加每个请求的开销。我对该项目使用了以下(hackish)方法:
- 每个重定向/链接都通过一个辅助方法进行引导,该方法知道哪些页面应该被视为 HTTP 还是 HTTPS(这仅在您使用某些服务器端代码时有效,否则您将不得不更新所有手动链接。)
- 如果从同一协议(protocol)导航到同一协议(protocol)(HTTP -> HTTP、HTTPS -> HTTPS),只需正常发出/重定向(即相对链接)
- 如果从 HTTP -> HTTPS 导航,只需正常发出/重定向,除非使用绝对 URL 来更改协议(protocol)。
- 如果从 HTTPS -> HTTP 导航...这是非常困难的,因为如果您只是发出协议(protocol)更改的绝对 url 链接,大多数浏览器都会向用户显示一条警告消息。您必须使用 META-Refresh 重定向。
我使用重定向帮助程序页面 redirect.aspx?url=unsecure_page2.aspx
,它基本上发出如下元标记:
<meta http-equiv="refresh" content="0;url=http://www.mydomain.com/unsecure_page2.aspx">
You are being redirected to http://www.mydomain.com/unsecure_page2.aspx.
If you aren't redirected in 5 seconds, please click <a href="http://www.mydomain.com/unsecure_page2.aspx">here</a>.
然后当你在https://www.mydomain.com/secure_page1.aspx ,并且您想重定向到 unsecure_page2.aspx,您可以使用重定向助手:
See unsecure page <a href="redirect.aspx?url=unsecure_page2.aspx">here</a>!
关于.net - 为特定页面禁用 ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6372801/