禁用特定页面的ssl

时间:2011-06-16 13:39:20

标签: .net ssl iis-6

环境
IIS 6
.NET 3.5(WEB FORMS

出于各种原因,我想在页面级别上启用SSL。这是最佳做法吗?我这样做时应该注意什么?什么被认为是最安全的方法?我打算这样做的方式是

右键点击页面 - >导航到属性 - >单击文件安全性 - >然后取消选中需要安全通道。

这会影响其他页面。任何帮助都会非常感谢你

1 个答案:

答案 0 :(得分:1)

注意:我使用.aspx代表ASP.Net页面,但以下内容应该适用。

即使您取消选中需要安全通道,我相信它仍将使用安全通道(因为您告诉它SSL不是必需,但这并不意味着它仍然无法使用SSL)。例如,如果您从secure_page1.aspx导航到unsecure_page2.aspx,它将默认通过HTTPS(或首页使用的任何协议)进行导航,即,当您单击特定页面时,它不会自动从HTTPS切换到HTTP链接。唯一的方法是使用绝对网址链接,即在https://www.mydomain.com/secure_page1.aspx上,您在页面上有一个链接说明:

<a href="http://www.mydomain.com/unsecure_page2.aspx">Link to unsecure page</a>

就个人而言,我建议如果一个网站需要任何SSL页面,整个网站都是SSL,或者它的整个部分(比如订购系统)是SSL,而不仅仅是需要安全的单个页面。这里的一个重要问题是要记住,在用户输入表单之前,任何发送关键信息的页面必须是SSL 。例如,不要使Login.aspx非SSL,然后使用Login-Post.aspx(表单post post url)SSL,因为这不安全。

我必须承认我已经完成了一个项目,其中网站是HTTP和HTTPS的混合,我们想强制用户的浏览器使用我们想要的协议。这样做的主要原因是HTTP页面在服务器和浏览器上比HTTPS更有效,因为加密会增加每个请求的开销。我对该项目使用了以下(hackish)方法:

  1. 每个重定向/链接都是通过一个帮助器方法引导的,该方法知道哪些页面应该被视为HTTP与HTTPS(这只适用于您使用某些服务器端代码,否则您将不得不更新所有页面手动链接。)
  2. 如果从相同协议导航到相同协议(HTTP - &gt; HTTP,HTTPS - &gt; HTTPS),则只需正常发送/重定向(即相对链接)
  3. 如果从HTTP导航 - > HTTPS,只是正常发出/重定向,除了使用绝对URL来更改协议。
  4. 如果从HTTPS导航 - &gt; HTTP ...这是非常难的,因为如果你只是发出一个带有协议变化的绝对url链接,大多数浏览器都会向用户显示一条警告消息。您必须使用META-Refresh重定向。
  5. 我使用重定向助手页面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>!