Presentation is loading. Please wait.

Presentation is loading. Please wait.

第8章 Web技術とセキュリティ   岡本 好未.

Similar presentations


Presentation on theme: "第8章 Web技術とセキュリティ   岡本 好未."— Presentation transcript:

1 第8章 Web技術とセキュリティ   岡本 好未

2 8.1.1 Webの基本的な構成要素 Webアクセスの流れ Webページ HTTPプロトコルで通信 サーバー ・Apache(OSS)
・IIS(MicroSoft) クライアント ・Edge ・Chrome ・safari etc… リクエスト ダウンロード Webアクセスの流れ ①ユーザがWebブラウザにURLを入力 ②WebブラウザからリクエストをWebサーバーに送る ③Webサーバーがリクエストを解析して処理 ④Webサーバーがレスポンスをブラウザに返す ⑤Webブラウザが受信データを解析して表示 Webページ 静的ページ:Webサーバー上にあるhtmlファイルがダウンロードされブラウザで表示される 動的ページ:Webサーバーを経由してWebアプリケーションサーバーにより動的に生成されたのがダウンロードされて表示される

3 8.1.2 HTTP通信でのデータの受け渡し Formタグによりユーザーネームとして入力された文字列を、Webアプリケーションサーバに用意されている「search.php」というファイル検索用のプログラムへ送信

4 ・get 取得したパラメータをURIで渡す
・post 取得したパラメータをHTTPリクエストのbody部に記す パラメータの送信メソッド ・get  ・post  URI クエリ文字列 ・?で始まる ・各パラメータを『変数名=値』の形で表す ・↑が複数ある場合は&でつなぐ HTTPリクエスト HTTPリクエスト行 1行 HTTPヘッダー行 複数行 1行空ける HTTPボディー部 必要なだけ

5 8.1.3 Webアプリケーションサーバー 3階層システム フロントエンド:画面のデザインなどを提供するソフトウェア
ロジック:振る舞いを記述したソフトウェア バックエンド:DBMSなどのソフトウェア

6 8.1.3 Webアプリケーションサーバーの例 例1: PHP 実行環境:Apache
・PHP言語で作成されたWebアプリケーションサーバーとやり取りする ・必要に応じてDBMSから必要に応じてデータを取得、それに基づいてページを生成 例2: Ajax(Asynchronous JavaScript+XML) ・Webサーバから(XHTML、CSS等と一緒に)ダウンロードしたJavaScriptをクライアントのWebブラウザで実行 ・JavaScriptはXML形式などのデータを用いてwebアプリケーションサーバーと通信する

7 8.2 Webにおける認証 Basic/Digest認証 HTTPには状態がない … 認証の記録が必要
・ユーザ名、パスワードをBase64で符号化(ほぼ平文) Digest認証 ・サーバからのChallenge、パスワード等から作ったハッシュ値でResponse ・一方向性認証(サーバ→クライアント)のみ

8 8.2 Webにおける認証 BASIC認証のやり取り ①BASIC認証を必要とする設定をしておいたリソースにWebブラウザでアクセスする
②アクセス制御されたリソースであることを知らせるメッセージ (Digestの場合、challengeが送信される) 入力されたユーザー名とパスワードをBase64で符号化する ③のようなメッセージをHTTPヘッダに追記して送信することで、アクセス制御されたリソースの取得を要求する ( Digestの場合、challengeやパスワードをハッシュ化したものをresponseとしておくる) ④ユーザー名とパスワードが正しければリソースを提供する ④以降、アクセス制御されたリソースにアクセスするたびに、符号化されたユーザー名とパスワードが常にヘッダに含められる

9 8.2 Webにおける認証(Cookieによる認証)
・アプリケーションサーバーへアクセスする際、クッキーをHTTPヘッダに含んで送信する ・クッキーは、アプリケーションサーバー上で作成され、ブラウザに保存される ・同一のページで複数のクッキーを利用できる

10 8.2 Webにおける認証(Cookieによる認証)
・クッキーが第3者に漏れることでなりすましをされる ・クッキーを用いて認証されたセッションを管理するには、SSL/TLSで保護する必要がある

11 8.3 XSS攻撃 ・クロスサイトスプリクティング:WEBアプリケーション上で悪意のあるスクリプトを動かされる
・ユーザーの入力に対して動的にHTMLページを生成するアプリケーションが対象 例:名前を入力して送信ボタンをクリックすると、ユーザーが入力した名前がページの一部となって表示されるアプリケーション 『送信』

12 8.3 XSS攻撃 名前の入力欄にHTMLタグを使用した「<s>kokubu</s>」という“名前”を入力すると…
「<s>kokubu</s>」という文字列をブラウザ上に表示したい場合は「<s>kokubu</s>」としなければならない

13 8.3 XSS攻撃 悪意のあるスクリプトだと危険である
名前入力欄にscriptタグを使用した「<script>alert(“XSS”);</script>」という“名前”を入力すると… XSSと書かれたダイアログボックスが表示される。 悪意のあるスクリプトだと危険である

14 8.3 XSS攻撃の対策 入力チェックとエスケープ処理 入力チェック エスケープ処理
・実際の処理を行う前に、想定した文字列(例:半角英数字)かどうかチェック エスケープ処理 ・HTMLにとって特別な意味を持つメタ文字が含まれていた場合、  通常の文字列として扱うよう変換 ・エスケープ処理関数が用意されている言語も

15 最近のセキュリティニュース


Download ppt "第8章 Web技術とセキュリティ   岡本 好未."

Similar presentations


Ads by Google