HTMLフォーム認証
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/02/11 07:48 UTC 版)
HTTP |
---|
主要項目 |
リクエストメソッド |
ヘッダーフィールド |
|
ステータスコード |
|
認証方式 |
セキュリティホール |
|
HTML |
---|
![]() |
HTMLフォーム認証は、ウェブサイトがフォームを使って、ユーザーエージェント(典型的にはウェブブラウザ)から認証情報(クレデンシャル)を収集し、認証を行う技法である。単にフォーム認証とも呼ばれる。
手順の概略
典型的には、以下の手順となる。
- 認証していない状態のユーザーエージェントがウェブサイトからウェブページを要求する。
- ウェブサイトは返答としてHTMLで書かれたウェブページをユーザーエージェントに渡す。このウェブページには、アカウント(ユーザー名あるいはEメールアドレスなど)・パスワードの入力を求めるフォームがあり、さらにログインや送信などと書かれたボタンが用意されている。
- 利用者はユーザー名とパスワードを入力し、ボタンを押す。
- ユーザーエージェントはフォームの入力内容をウェブサーバーに送信する。
- ウェブサーバー内で実行されているプログラムは検証と承認を行う。成功したら、指定のアカウントとしてのセッションが開始される。
- 以後、セッションを維持する方法としては、セッションIDをHTTPクッキーに保存する方法がよく用いられる。
認証の方法として、パスワード以外にさらに追加の手順を課す多要素認証としたり、WebAuthnなどパスワードを用いない方法が採用されることもある。
コード例 (HTML)
実際には、これに加えてクロスサイトリクエストフォージェリ (CSRF)への対策が必須である。クロスサイトリクエストフォージェリ#対策などを参照のこと。
<form method="POST" action="/login">
<label>ユーザー名: <input type="text" name="username" autocomplete="username" required></label>
<label>パスワード: <input type="password" name="password" autocomplete="current-password" required></label>
<button type="submit">ログイン</button>
</form>
ウェブサーバーにおけるサポート
フォーム認証は、一般的にウェブアプリケーションフレームワークによって提供される機能であるが、ウェブサーバーが機能を提供する例もある。
関連項目
外部リンク
- HTMLフォーム認証のページへのリンク