SSL登录iFrame

时间:2010-03-01 13:31:20

标签: asp.net html security login

我的UI原型要求我一直显示网站登录信息。要么我应该显示通常的用户名和密码文本框或“你登录为”。最后一点不必是安全的,因为它只是用户的信息,我将使用服务器端。但第一部分应该向服务器发送安全。

似乎我必须对网站上的所有网页使用https。我想只使用ssl来确保安全性。

一种方法是将登录信息放入https://../login.aspx并将其作为IFrame显示在我的主页上。

我可以看到的一个缺点是用户不会知道正在使用https,除非他们在源代码中读取IFrame src。

您怎么看?

3 个答案:

答案 0 :(得分:0)

另一种选择是利用Button控件的PostBackUrl property

您需要创建自己的登录LayoutTemplate才能利用此功能。然后,您就可以将安全方案添加到当前页面URL,并将提交按钮的PostBackUrl属性设置为该属性。

这会对您的iFrame解决方案产生类似的问题(用户不会看到挂锁符号),但是您将拥有不使用iFrame的优势。

使用iFrame的另一个问题是它们可能对页面产生的影响:

  • 它们是一个单独的请求,但可能导致JavaScript PageLoad事件触发阻止。
  • 登录表单只会在iFrame中回发,因此您需要在用户成功登录后刷新父页面以将其删除。
    • 除此之外,错误将在iFrame中返回,可能不会给你留下太多空间来显示表单等。

答案 1 :(得分:0)

你遇到了重大问题。您希望登录需要在每个页面上使用SSL,但您不希望整个页面都是SSL。

此时此更多是商业决策。您是希望您的客户对访问您的网站感到更安全,还是希望每个屏幕上都显示登录信息?

如果您需要同时使用这两者,您可能还需要考虑使整个网站成为SSL。

答案 2 :(得分:0)

您使用的是内置的asp.net登录控件,还是仅使用两个文本框控件?

您可以使用自己的表单标记(不是runat =“server”),将action属性设置为“https:// ...”,只需使用两个html输入标记和一个按钮即可登录。

同样,这不会向用户显示登录时凭据是否安全。

由于最近发现了一些SSL攻击,因此最好还将登录表单放在https://页面上。否则,被黑客攻击可以拦截http流并将表单操作从“https:// ...”更改为“http:// ...”,然后嗅探凭据。