目次
Webアクセスは単一ページで完結してしまう
HTTPは、もともとハイパーテキスト、すなわちHTMLファイルの転送に利用するプロトコルです。単純にWebサイトを見るときは、WebサーバアプリケーションはWebブラウザからWebページのリクエストを受け取り、レスポンスとしてWebページの内容を送り返してWebアクセスの通信は終了します。
ところが、Webアプリケーションでは、1つのWebページの表示だけでは処理が完結しません。複数のWebページにまたがって処理を行うことになります。たとえば、オンラインショッピングを考えると、商品ページから購入したい商品をカートに入れます。そして、カートのページから決済ページで決済を完了させるというように複数のWebページをまたがって処理を行います。複数のWebページにまたがって同じクライアント(Webブラウザ)からのアクセスであることをきちんと識別して処理を行わなければいけません。
セッション管理によって、特定のクライアント(Webブラウザ)からの複数のWebページにまたがったWebアクセスを識別して、Webアプリケーションでの一連の処理を正しく行うことができます。
セッション管理の概要
セッション管理のために、最初にWebブラウザからのリクエストを受け取ったときにWebサーバ側で通信セッションを識別するセッションIDを発行します。そして、WebブラウザはWebサーバにリクエストを送信するときに、セッションIDも一緒に通知します。Webサーバは、セッションIDによって一連のリクエストが同一クライアントのWebブラウザによる通信セッションであることがわかるようになります。
WebサーバとWebブラウザ間でセッションIDをやり取りする代表的な方法として、以下の3つあります。
- URLリライティング
- HTTP Cookie
- hiddenフィールド
URLリライティング
URLリライティングは、URLにセッションIDを埋め込む方法です。WebサーバからのリプライとなるWebページのすべてのリンクにセッションIDを埋め込みます。Webブラウザがリンクをクリックすると、自動的にセッションIDが含まれたURLのリクエストを送信することになります。
HTTP Cookie
HTTP Cookieは、Webサーバが発行するCookieにセッションIDを埋め込む方法です。Webブラウザはリクエストを送信するときにCookieも一緒に送信してセッションIDを通知します。
hiddenフィールド
hiddenフィールドは、WebページのフォームのhiddenフィールドにセッションIDを埋め込みます。Webページの遷移はすべてフォームで記述し、Webページの遷移の際にはhiddenフィールドのセッションIDがWebサーバに通知されます。
セッションIDが漏えいしないように・・・
セッションIDは、第三者に漏れてしまわないように考慮しなければいけません。セッションIDが第三者に漏れてしまうと、セッションが乗っ取られてしまうセッションハイジャックの危険性があります。
URLリライティングは、セッションIDが漏れてしまう危険性一番高いです。セッションIDを秘匿するには、フォームのhiddenフィールドにセッションIDを埋め込むことが最も有効です。HTTP Cookieを利用する場合は、Cookieのsecure属性を指定して、HTTPSの通信のみCookieを送信するなどを検討します。
|
secure属性なし |
secure属性あり |
httpの通信 |
送信する |
送信しない |
httpsの通信 |
送信する |
送信する |
TCP/IP
- TCP/IPの階層
- IP(Internet Protocol) ~データを送り届ける~
- ICMP ~きちんとIPで転送できますか?~
- Ping ~きちんとデータは届きますか?~
- Windows OSのPingコマンド
- トレースルート ~データはどのルータを通っていますか?~
- tracertコマンド(Windows OS)
- ICMPリダイレクト
- トラブルはどこ? ~Pingとトレースルート~
- ARP ~IPアドレスとMACアドレスを対応付け~
- ARPフォーマット
- Gratuitous ARP(GARP)
- ポート番号 ~どのアプリケーションのデータなの?
- TCPの概要
- TCPの動作
- UDPの概要
- アプリケーションのデータが届くまでのまとめ
- DNS ~宛先IPアドレスを求める~
- nslookupコマンド ~DNSの名前解決の確認~
- DHCP ~IPアドレスを自動割り当て~
- Cisco IOS DHCPサーバの設定と確認コマンド
- Ciscoルータ DHCPサーバの設定例
- DHCPリレーエージェント
- DHCPリレーエージェントの設定例[Cisco]
- DHCPサーバ配置のまとめ
- TCP/IPの設定のまとめ
- ipconfigコマンド ~Windows OSのTCP/IP設定を確認~
- Linux(Ubuntu)でのTCP/IP設定の確認コマンド
- Webサイト
- HTMLとCSS ~Webページを作る~
- URL ~Webサイト(Webページ)のアドレス~
- HTTP ~HTMLファイルを転送する~
- Webアプリケーション ~Webブラウザだけあればいい~
- HTTP Cookie
- Webアプリケーションのセッション管理
- Webプロキシサーバ ~Webアクセスを代わりに~
- Webアクセスのまとめ
- 電子メール
- SMTP ~電子メール送信用プロトコル~
- POP3 ~メール受信用プロトコル~
- IMAP4 ~メールサーバ上でメールを管理~
- 電子メールのまとめ
- FTP ~代表的なファイル転送プロトコル~
- TFTP ~簡易的なファイル転送プロトコル~
- Windows10/11のTFTPクライアント
- ネットワークのトラブルの切り分け手順