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

Slides:



Advertisements
Similar presentations
セッション管理 ソフトウェア特論 第 8 回. ここでの内容 セッション管理の基本を知る。 HttpSession の使い方を知る。
Advertisements

情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
1 PHP プログラムの実行(まと め) 担当 岡村耕二 月曜日 2限 平成 22 年度 情報科学 III (理系コア科目・2年生) 本資料の一部は、堀良彰准教授、天野浩文准教授、菅沼明 准教授等による以前の講義資料をもとにしています。
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
OWL-Sを用いたWebアプリケーションの検査と生成
IIS 4.0で開発をするコツ Webアプリケーション構築.
メール暗号化:秘密鍵・公開鍵の作成  作業手順 Windows メール(Vista).
WWW のおはなし 神戸大学理学部地球惑星科学科 4 回生 佐伯 拓郎 (地球および惑星大気科学研究室) 藤田 哲也 (宇宙物理学研究室)
4.ユーザー登録マニュアル              Version 年6月10日 国立情報学研究所.
情報基礎A 情報科学研究科 徳山 豪.
JPAを利用した RESTful Webサービスの開発
富士ソフト株式会社 IT事業本部 テクニカルC&C部 小川直人
WEBから確認できる 駐車場管理システムについて
第2章 ネットサービスとその仕組み(前編) [近代科学社刊]
REST型Webサービスによる 楽曲検索システムの開発
Struts1.xの脆弱性(CVE ) に対するSDEの対処:wrapタイプ (パッチのご提供)
Servlet入門(2) 入力フォームをつかったWebアプリ
JavaServlet&JSP入門 01K0018 中村太一.
「コンピュータと情報システム」 07章 インターネットとセキュリティ
第4回 個人の動画配信補足のためのWeb構築
「まめだくん Ver.1.0」 特徴と利用方法.
Vulnerability of Cross-Site Scripting
タグライブラリ ソフトウェア特論 第6回.
BlueBeanClientを用いた連携の概要
佐賀大学 理工学部知能情報システム学科 講師 大月 美佳
タグライブラリとJSP J2EE I 第10回 /
Web App Semi 2008 #1 Web App Semi 2008 #1.
4-3.基本的なPHPスクリプト 2004年6月24日(木) 大北高広 01T6010F.
セッション管理 J2EE I 第9回 /
HTTPプロトコルとJSP (1) データベース論 第3回.
平成22年度に実施を予定するインターネットを 用いた研修システムによる研修 ライブ配信受講手順書
JQueryでAjax 藤田@ジャストプレイヤー ※参考しまくり文献 jQuery日本語リファレンス.
Curlの仕組み.
タグライブラリとJSP J2EE II 第2回 2004年10月7日 (木).
押さえておきたいIE8の セキュリティ新機能
HTTPプロトコル J2EE I 第7回 /
Microsoft Office 2010 クイックガイド ~応用編~
Day3 Day4 Day3 Day4.
情報コミュニケーション入門 総合実習(1) 基礎知識のポイント(2)
ネットワークプログラミング論 平成28年12月12日 森田 彦.
データベース設計 第9回 Webインタフェースの作成(1)
基幹理工学研究科 情報理工学専攻 後藤研究室 修士1年 魏 元
Javaによる Webアプリケーション入門 第9回
Microsoft Office 2010 クイックガイド ~応用編~
Javaによる Webアプリケーション入門 第5回
第2章 第1節 情報通信の仕組み 1 ネットワークの仕組み 2 通信プロトコル 3 認証と情報の保護
空間情報サーバ (株)パスコ.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
情報コミュニケーション入門b 第10回 Web入門(1)
情報コミュニケーション入門b 第10回 Web入門(1)
第2回 SQL インジェクション その攻撃と対処 NECラーニング 山崎 明子.
Javaによる Webアプリケーション入門 第6回
制作技術ー3 双方向通信 : CGIシステムと環境変数
Webセキュリティ 情報工学専攻 1年 赤木里騎 P226~241.
情報コミュニケーション入門e 第11回 Part2 Web入門(1)
日本郵便 「Web-EDI」利用ガイド (JP EDIシステム)
コンピュータ プレゼンテーション.
データベース設計 第7回 実用データベースの運用例 クライアント=サーバシステム(1)
JSFによるWebアプリケーション開発 第3回
情報コミュニケーション入門b 第11回 Web入門(2)
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
Microsoft Office 2010 クイックガイド ~応用編~
Androidアプリの作成 07A1069 松永大樹.
LEAP初期登録マニュアル 初期設定(初めてのログイン) P 2-3 パスワードの変更 P 4 パスワードを忘れたとき P 5-8
データの改竄を防ぐ仕組み 2002/9/12 牧之内研究室「インターネット実習」Webページ
HTTPプロトコルの詳細 M1 峯 肇史.
Presentation transcript:

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

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アプリケーションサーバーにより動的に生成されたのがダウンロードされて表示される

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

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

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

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

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

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

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

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

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

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

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

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

最近のセキュリティニュース http://www.itmedia.co.jp/news/articles/1801/16/news066.html