当前位置: 首页 > 技术支持 > 知识库

如何使用SSL创建安全登录表单

发布日期: 2019-03-28 13:39:06 阅读量: 作者: 金网SSL证书
  大多数Web开发人员都知道,如果用户输入用户名和密码登录到不受SSL证书保护的站点,攻击者可以以纯文本形式查看其用户名和密码。但是制作一个安全的登录表并不总是听起来那么简单,许多大型网站都做错了。虽然经常被误解,但有很好的方法和不好的方法可以通过SSL保护您网站的登录表单。


  有什么风险?如果攻击者可以轻松查看某人的用户名和密码,他可以冒充该用户,并通过购买产品,转移资金,阅读电子邮件等来造成巨大损失。但是存在更危险的可能性:因为(咳嗽,非智能)用户经常在许多网站上使用相同的密码(使用与其Facebook帐户相同的银行帐户密码),攻击者可能会破坏许多其他帐户。如果您让人们随身携带密码,您必须负责保护密码,即使您自己网站的安全性不是很严重(例如论坛)。


 一、如何制作安全的登录表单

      让我们看看Web开发人员在创建安全登录表单时遇到的两个常见错误:


      根本没有保护登录表单根本不保护登录表单是网络上最常见的错误。除非您不在乎是否有人知道您的访问者的用户名和密码,或者除非您使用下面列出的其他替代身份验证方法,否则您需要在登录页面上使用SSL。

     将https登录表单放在不安全的http页面上 对于高流量站点,SSL需要更多处理能力。那么为什么不将登录表单放在http页面(比如主页)上,并将表单提交到https页面?这确实会在提交时加密登录信息,但这种方法存在一些问题:


      (1). 用户无法知道登录信息将被加密(不研究站点的源代码)。互联网用户已经过培训,可以检查“黄金锁定”图标(或最近的“绿色条形图”),以确保在向网站提交敏感信息之前对网络会话进行加密。这对于防止网络钓鱼攻击非常重要。删除该视觉提示(即使提交的信息已加密),使表单看起来不安全。


     (2).表单的操作可以很容易地被攻击者更改为另一个URL因为登录表单页面是通过http传输的,所以中间人攻击者可以简单地为表单注入不同的URL以进行POST。在用户名和密码已经发送给攻击者之前,用户不知道。攻击者甚至可以注入一些JavaScript代码来向攻击者发送用户名和密码,而无需用户知道发生任何异常情况。
  最受欢迎的例子是Twitter和Facebook。


  这些表单实际上会加密登录信息,但用户基本上无法知道这一点。您是否认为使用登录表单在http页面上执行中间人攻击会很困难?嗯,事实并非如此。甚至还有像SSLStrip这样的免费自动化工具。唯一困难的部分是在大多数网络中成为一个中间人。

 二、如何创建安全的登录表单


       现在我们知道如何使用SSL保护登录表单,让我们看看我们应该如何做到这一点。为方便起见,许多大型网站和银行过去常常将其登录表单放在不安全的主页上。幸运的是,许多人(包括http://www.bankofamerica.com/和http://www.chase.com/)已经改为更安全的方法,我们可以从中学习。即使我们使用http访问他们的主页,它也会转发到https页面。结合显示明显无误的“绿色条形”的EV SSL证书,中间人/网络钓鱼攻击的可能性是虚拟不存在的。
创建安全登录表单基本上有两种选择:


        (1).创建一个单独的登录页面,只能使用https和(当然)使用https提交

        (2).在主页上强制执行https并在其中

        (3).始终包含登录表单。这使得登录更方便,更安全,因为用户比单独的登录页面更可能为https主页添加书签。

 在OWASP SSL最佳实践说明清楚:


        登录登录页面必须使用SSL 用户填写表单的实际页面必须是HTTPS页面。如果不是,攻击者可以修改页面,因为它被发送给用户并更改表单提交位置或插入JavaScript,在输入时会窃取用户名/密码。

        用于创建安全登录表单的其他选项 如果您不想在登录页面上强制使用https,或者如果您根本不想购买SSL证书,该怎么办?现在有几种替代方案可以让您安全地对用户进行身份验证,而无需自己完成工作:

        事实上,每个人都有一个Facebook帐户,Facebook使您可以轻松使用他们的Facebook用户名和密码对用户进行身份验证。身份验证发生在Facebook自己的网站           上(使用SSL正确保护),因此它是完全安全的,这意味着用户不必为您的网站记住另一个用户名和密码。

        OpenID与Facebook connect类似,OpenID允许用户在另一个站点上进行身份验证,现在有许多OpenID服务可用,尽管它不如Facebook那么受欢迎。

      Twitter还提供了一个API,允许您的用户使用他们的Twitter帐户安全登录他们的网站。
  使用SSL正确保护您的登录表单实际上只是保护您网站的一小部分,但如果没有它,您将给予您的用户对安全性的负面印象。通过正确执行,您可以通过增强用户期望来帮助所有网站更安全。
上一篇: 如何在IIS 7中创建自签名证书
下一篇: SHA-1 SSL证书是什么