MaxKey/docs/protocols/formbased.md
shimingxy 837cbe1a1e u
2020-03-08 08:50:58 +08:00

2.9 KiB
Raw Blame History

1 FormBased介绍

HTTP+HTML FormBased(基于表单)的认证目前一般简单的基于表单的认证是一种登录技术即一个网站使用一个Web表单收集并随后进行身份验证认证的凭证信息来源于用户代理通常web浏览器。 (请注意,短语“基于表单的认证”是不明确的。请参阅进一步解释基于表单的认证。)

2 交互概要

该技术的实现步骤是:

  1. 一个未经身份验证的用户代理通过HTTP协议从网站请求一个网页。
  2. 该网站返回一个HTML网页的未经验证的用户代理。该网页包含提示用户为他们的用户名和密码以及标有“登录”或“提交”按钮基于HTML的Web表单最低限度。
  3. 用户填写自己的用户名和密码,然后按下提交按钮。
  4. 所述用户代理发送的web表单数据包括用户名和密码到Web服务器。
  5. 网站实现中Web服务器上运行时执行对网络的形式的数据部分的验证和确认操作。如果成功该网站考虑用户代理进行认证。

3 采纳建议

HTTP + HTML基于表单的认证可以说是万维网上采用当今最流行的用户认证技术。几乎所有维基论坛银行/财经网站电子商务网站网络搜索引擎门户网站和其他常见的Web服务器应用程序都选择了这种认证技术。

这种普及显然是由于网站管理员或他们的雇主想要细粒度地控制征求用户凭据的表现和行为而默认弹出对话框用于HTTP基本访问身份验证或摘要接入认证许多Web浏览器提供不允许精确的剪裁。所需的精确度可以通过公司的要求如品牌或实施问题的动机如网站之类的软件对于MediaWikiphpBB的Drupal的WordPress的默认配置。无论理由任何企业品牌或用户体验的调整不能从这个认证过程的几个安全考虑分散。

4 安全方面注意事项

  1. 用户凭据传递了密文到web网站除非采取诸如就业传输层安全TLS的监听。
  2. 该技术基本上是特设在于有效地没有任何用户代理和所述网络服务器之间的交互除HTTP之外的与HTML本身是标准化。通过该网站所使用的实际的认证机制是默认未知的用户和用户代理。形式本身包括可编辑字段的数量和期望的内容物完全实现和部署相关的。
  3. 这种技术本身临时的,否则犯罪分子极易伪装成可信任方在认证过程中。

5 代码实现


<form method="post" action="/login">
  <input type="text" name="username" required>
  <input type="password" name="password" required>
  <input type="submit" value="Login">
</form>