码农家园

关闭
导航

关于asp.net:iFrame中的SSL登录


asp.nethtmlloginsecurity

SSL Login in iFrame

我的UI原型要求我一直显示网站的登录信息。我要么显示通常的用户名和密码文本框,要么显示"您以"身份登录"。最后一点不一定是安全的,因为这只是给用户的信息,我不会在服务器端使用任何东西。但是第一部分应该将安全性发送到服务器。

看来,那时我将不得不对网站上的所有页面使用https。我只想将ssl用于确保安全的事物。

一种方法是将登录信息放入https://../login.aspx中,并以IFrame的形式显示在我的主页上。

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

您怎么看?

相关讨论

  • 对安全执行所有操作有何反对意见?无论如何,您将必须进行SSL协商。
  • 例如,将为网站的其余部分启用缓存,而不使用ssl


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

您可以使用动作属性设置为" https:// ..."的自己的表单标签(而非runat =" server"),只需使用两个html输入标签和一个按钮即可登录。

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

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


您遇到了主要问题。您需要登录,登录必须在每个页面上才能使用SSL,但是您不希望整个页面都使用SSL。

在这一点上,这比其他任何事情都更重要。您想让客户对访问您的网站感到更安全,还是希望每个屏幕上都显示登录信息?

如果同时需要两者,则可能还需要考虑使整个站点都具有SSL。


另一个选择是利用Button控件的PostBackUrl属性。

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

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

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

  • 它们是一个单独的请求,但会导致JavaScript PageLoad事件触发时发生阻塞。
  • 登录表单只会在iFrame中回发,因此,当用户成功登录后,您需要刷新父页面才能将其删除。

    • 除此之外,iFrame中还会返回错误,可能也不会给您留出足够的空间来显示表单,等等。

Copyright ©  码农家园 联系:[email protected]