基礎中の基礎。いつでも体系的に口頭で説明できるように自戒を込めて。
HTTPってなに?
Hypertext Transfer Protocol.RFC2616で規定された、TCP/IPをベースとしたネットワークプロトコル。
TCP/IPってなに?
ネットワークプロトコル。以下のように4層の階層型なっている
- アプリケーション層:
- トランスポート層
- インターネット層
- ネットワークインターフェース層
- 一番下の層。物理的なケーブルやネットワークアダプタに相当
- 代表的なプロトコル: イーサネット
データ送信時は上から下の層へデータは流れる。データ受信時は当然逆の流れ。
HTTPSってなに?
ネットワークプロトコル。httpプロトコルとの違いは、TCPとHTTPの間にさらにTLS(Transport Layer Security)プロトコルを利用する点。 TLSを利用することで、セキュアな通信を実現している。
TLSについて
- TLSでは一般にSSL(Secure Sockets Layer)と呼ばれる
- 以下のセキュリティ上の機能を提供する
- クライアントとサーバの認証機能
- 通信データ暗号化
- 通信データの改ざん検出
- TLSはTCP上で利用されるため、まずTCP接続を確立する必要がある
- TCP接続後にTLSハンドシェイクを行い、TLS接続を確立する。
- TLSハンドシェイクでは、TCP接続の3ウェイハンドシェイクでやり取りする処理に加えてさらにパケットを最低1往復半する必要がある。
ブラウザ上にWebページが表示されるまでの流れは?
クライアント->サーバ
- ブラウザにURL(http://example.com など)を入力する
- リゾルバを介してDNSサーバに問い合わせを行い、IPアドレスを取得する
- HTTPメッセージを作成し、上記で取得したIPアドレスへHTTPリクエストを送信する
サーバ->クライアント
- サーバがHTTPリクエストを受信すると、サーバ側ソフトウェアがリクエストを解析し、内容に応じて処理を実行する
- HTTPメッセージを作成し、クライアントにHTTPリクエストを送信する
- クライアントは受け取ったレスポンスを解析して、その内容に基づいてWebページを表示する
ブラウザがWebページが描画されるまでの流れは?
サーバからHTTPレスポンス受信後〜
- Loading: リソース読み込み
- Scripting: JavaScriptの実行。ブラウザのJavaScriptエンジンがコンパイルを行う
- Rendering: レイアウトツリーを構築する。CSSがどこに適用されるかはここで計算する
- Painting: レンダリング結果を描画する。ブラウザのグラフィックエンジンがレンダリングを行う
代表的なWebアプリケーション脆弱性は?
Webアプリに外部からの入力に応じて変化する箇所がある場合、この部分のHTML生成に問題があるとXSS脆弱性が発生する。 例えば、ユーザのクッキー値を送信するスクリプトを設置しておくことで、ユーザのセッションIDが盗まれるなど。
- SQL Injection
ユーザの入力を発行するSQLに含めるような処理がある場合、適切に対応しないとSQLが改ざんされて、場合によってはDB内の全てのデータ盗まれてしまう。 対策としては、プレースホルダ方式を使い、後からSQLが改ざんされないようにするなど。
攻撃者によって用意された攻撃用Webページにユーザがアクセスすると、攻撃用Webページ内にあらかじめ用意されていた不正なリクエストが攻撃対象サーバに送信する。攻撃対象サーバ上のWebアプリケーションは不正なリクエストを処理し、ユーザが意図していない処理が行われてしまう。
クッキー生成の不備、セッションIDの盗聴、XSSによる漏洩、PHPやブラウザの脆弱性、URLにセッションIDを保持している場合など、セッション管理に不備があると第三者に利用者に対するなりすましを行われてしまう。
- 作者: 竹下隆史,村山公保,荒井透,苅田幸雄
- 出版社/メーカー: オーム社
- 発売日: 2012/02/25
- メディア: 単行本(ソフトカバー)
- 購入: 4人 クリック: 34回
- この商品を含むブログ (37件) を見る
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)
- 作者: 矢野啓介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 34人 クリック: 578回
- この商品を含むブログ (129件) を見る
- 作者: 結城浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/08/26
- メディア: 単行本
- この商品を含むブログ (19件) を見る
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (183件) を見る