130 likes | 219 Views
データベースを使用したウェブアプリケーションの開発 手法. 筑波大学 情報学類 吉田光男 アドバイザー教員 : 天笠俊之 先生 2006.12.19@3A402. ウェブアプリケーション開発. ユーザ認証のためのテーブル設計 セッション・ハイジャックの防止 複数ブラウザへの対応 IE, Firefox, Opera Flash の利用 ライブラリの利用 CPAN, Web API キャッシュの利用 バッファリング制御. ユーザ認証のためのテーブル設計. ユーザ管理テーブル UserID, Email, Password セッション管理テーブル
E N D
データベースを使用したウェブアプリケーションの開発手法データベースを使用したウェブアプリケーションの開発手法 筑波大学 情報学類 吉田光男アドバイザー教員: 天笠俊之 先生 2006.12.19@3A402
ウェブアプリケーション開発 • ユーザ認証のためのテーブル設計 • セッション・ハイジャックの防止 • 複数ブラウザへの対応 • IE, Firefox, Opera • Flash の利用 • ライブラリの利用 • CPAN, Web API • キャッシュの利用 • バッファリング制御
ユーザ認証のためのテーブル設計 • ユーザ管理テーブル • UserID, Email, Password • セッション管理テーブル • UserID, SessionID, IP, Expiration • プライマリキーは int が原則 • UserID は int 型
セッション・ハイジャック • セッション • Cookie で SessionID のやり取り • セッション・ハイジャック • SessionID が他者に利用されることで発生 • SessionID の推測 • クロスサイトスクリプティング(XSS) • 通信の傍受(Sniffer) • セッション固定攻撃(Session Fixation)
セッション・ハイジャックの防止 • SessionID を推測困難にする • ユーザ固有情報を含めない • 十分な長さのキーを(32文字) • PHP 128bit / ASP 32bit • 汚染チェック(Sanitize) • 出力で行う • 通信の暗号化(HTTPS) • SessionID の配布はサーバが行う • ユーザが SessionID を指定できない • その他 • IP, Expiration
複数ブラウザへの対応 • ブラウザ・シェア(W3Counter より) • IE 65%, Firefox 27%, Opera 1% • HTML, CSS のブラウザ対応 • W3C 勧告に従う • ブラウザ依存あり • Ex: padding (IE では内側に) • JavaScript / Ajax • prototype.js の使用を検討
Flash の利用 • インタラクティブ・コンテンツの作成 • マルチプラットフォーム対応 • JavaAplet or Flash • Flash 98% • インタラクティブ・コンテンツの利用シーン • Ex: 入力の簡略化 • Demo: バーコード認識
ライブラリの使用 • 開発スピードを上げる • 車輪の再開発を避ける • Perl CPAN, PHP PEAR • ライセンスに注意 • サービス公開後 • ライブラリから自前関数への変更 • パフォーマンスの改善が見込めるのであれば • トレードオフ
Web API の利用 • Web API • Amazon Web Services をきっかけに • Google Web APIs etc… • マッシュアップ(MashUp) • 複数のサービスを混ぜる • Ex: Google Maps API + ?? • Demo: Simple FON Maps • Google Maps API + invgeocoder + FON Maps
キャッシュ • データのキャッシュ • 取得したデータの再利用 • Web API を使用するときは重要 • 取得先サーバ負担の軽減 • 計算した結果を再利用 • 演算に時間がかかる処理を • 全体のパフォーマンスの改善 • キャッシュはキャッシュじゃない • ミラーコピー
バッファリング制御 • バッファリング • バッファにデータをためる • 全体のパフォーマンス改善のため • ウェブアプリではバッファリングを OFF に • ユーザの利便性 > 全体のパフォーマンス • 処理内容の表示 • Ajax の作動中に画像表示 • 画像出してる時点でおかしいけど…
なぜウェブアプリケーション • デバッグが容易 • 作動環境がサーバのみ • 基本的に複数の環境でテストする必要がない • HTML, CSS, JavaScript は必要あり • ユーザの手間 • ブラウザがあれば実行できる • モチベーション • 利用ユーザがリアルタイムにわかる • 最新のバージョンをすぐに使ってもらえる
Let's Enjoy • Simple FON Maps • http://labs.ceek.jp/fon/ • FON • http://jp.fon.com/