1 / 13

データベースを使用したウェブアプリケーションの開発 手法

データベースを使用したウェブアプリケーションの開発 手法. 筑波大学 情報学類 吉田光男 アドバイザー教員 : 天笠俊之 先生 2006.12.19@3A402. ウェブアプリケーション開発. ユーザ認証のためのテーブル設計 セッション・ハイジャックの防止 複数ブラウザへの対応 IE, Firefox, Opera Flash の利用 ライブラリの利用 CPAN, Web API キャッシュの利用 バッファリング制御. ユーザ認証のためのテーブル設計. ユーザ管理テーブル UserID, Email, Password セッション管理テーブル

Download Presentation

データベースを使用したウェブアプリケーションの開発 手法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. データベースを使用したウェブアプリケーションの開発手法データベースを使用したウェブアプリケーションの開発手法 筑波大学 情報学類 吉田光男アドバイザー教員: 天笠俊之 先生 2006.12.19@3A402

  2. ウェブアプリケーション開発 • ユーザ認証のためのテーブル設計 • セッション・ハイジャックの防止 • 複数ブラウザへの対応 • IE, Firefox, Opera • Flash の利用 • ライブラリの利用 • CPAN, Web API • キャッシュの利用 • バッファリング制御

  3. ユーザ認証のためのテーブル設計 • ユーザ管理テーブル • UserID, Email, Password • セッション管理テーブル • UserID, SessionID, IP, Expiration • プライマリキーは int が原則 • UserID は int 型

  4. セッション・ハイジャック • セッション • Cookie で SessionID のやり取り • セッション・ハイジャック • SessionID が他者に利用されることで発生 • SessionID の推測 • クロスサイトスクリプティング(XSS) • 通信の傍受(Sniffer) • セッション固定攻撃(Session Fixation)

  5. セッション・ハイジャックの防止 • SessionID を推測困難にする • ユーザ固有情報を含めない • 十分な長さのキーを(32文字) • PHP 128bit / ASP 32bit • 汚染チェック(Sanitize) • 出力で行う • 通信の暗号化(HTTPS) • SessionID の配布はサーバが行う • ユーザが SessionID を指定できない • その他 • IP, Expiration

  6. 複数ブラウザへの対応 • ブラウザ・シェア(W3Counter より) • IE 65%, Firefox 27%, Opera 1% • HTML, CSS のブラウザ対応 • W3C 勧告に従う • ブラウザ依存あり • Ex: padding (IE では内側に) • JavaScript / Ajax • prototype.js の使用を検討

  7. Flash の利用 • インタラクティブ・コンテンツの作成 • マルチプラットフォーム対応 • JavaAplet or Flash • Flash 98% • インタラクティブ・コンテンツの利用シーン • Ex: 入力の簡略化 • Demo: バーコード認識

  8. ライブラリの使用 • 開発スピードを上げる • 車輪の再開発を避ける • Perl CPAN, PHP PEAR • ライセンスに注意 • サービス公開後 • ライブラリから自前関数への変更 • パフォーマンスの改善が見込めるのであれば • トレードオフ

  9. 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

  10. キャッシュ • データのキャッシュ • 取得したデータの再利用 • Web API を使用するときは重要 • 取得先サーバ負担の軽減 • 計算した結果を再利用 • 演算に時間がかかる処理を • 全体のパフォーマンスの改善 • キャッシュはキャッシュじゃない • ミラーコピー

  11. バッファリング制御 • バッファリング • バッファにデータをためる • 全体のパフォーマンス改善のため • ウェブアプリではバッファリングを OFF に • ユーザの利便性 > 全体のパフォーマンス • 処理内容の表示 • Ajax の作動中に画像表示 • 画像出してる時点でおかしいけど…

  12. なぜウェブアプリケーション • デバッグが容易 • 作動環境がサーバのみ • 基本的に複数の環境でテストする必要がない • HTML, CSS, JavaScript は必要あり • ユーザの手間 • ブラウザがあれば実行できる • モチベーション • 利用ユーザがリアルタイムにわかる • 最新のバージョンをすぐに使ってもらえる

  13. Let's Enjoy • Simple FON Maps • http://labs.ceek.jp/fon/ • FON • http://jp.fon.com/

More Related