すぐそこまで近付いた春のおとずれを感じる穏やかな晴天、参加者43名。 |
![]() |
■■ミーティング概要■■ |
Preミーティング) はじめに) demo1) demo2) 番外編) |
|
Preミーティング) ▲Top
|
|
はじめに) ▲Top
|
|
demo1) ▲Top 『超ファイルメーカーPro入門編-スクリプト-』高岡幸生 前回のオフラインミーティングに引き続いての初心者編です。 「ボタンを作ろう」 ところでボタンは一つのアクションしか設定できませんね。 「スクリプトには"記憶"は使っちゃダメよ」 「スクリプトステップの中のIf文」 IsEmpty(日付け)=1 また、サブスクリプトをIF文と組み合わせれば、各種条件にあわせて「サブスクリプト」を呼び出してくれます。これだと複雑な処理も見やすいステップにできます。 最後に、スクリプトの編集を行う時は必ず「複製」してください。 |
|
demo2) ▲Top 『CDMLに仕事をさせないWeb公開 〜カレンダー〜』山本康仁 ファイルメーカーのWebコンパニオン及びCDMLは非常に便利なサービスである。一方、Webコンパニオンで公開したデータベースは、作者の意図しない操作を受ける危険性が高いのも事実である。Webセキュリティは完全なものとは言えず、XML出力機能は簡単にデータベースの構造、データそのものを取り出すことが可能である。 そこで、公開側データベースと非公開データベースを二重に用意し、スクリプトやリレーショナルを利用して二つを連動させ、非公開側データベースにおいた情報を守るという、比較的オーソドックスな手法を、ファイルメーカーのもつ簡単なweb公開の機能を出来るだけ損なうことなく、追求した。 一番難しい選択は、構造、手法が複雑化することによって、生産性、保守性が低下することと、セキュリティをどのバランスで実装するかである。これまではバランスの問題から、CDMLフィルタリングサーブレット、もしくはアップルスクリプト、またはFLASHといった外部ソフトの助けを借りる方法がもっともスマートであるとされてきた。しかし、今回は最小限のプラグインを用意するのみで、全体のプロテクションをwebコンパニオンとスクリプトで実現する方法をとった。 実装方法の基本はオーソドックスなデータベースの二重化である。すなわちwebコンパニオンもしくはXML、ODBCで公開される可能性のあるデータベースにはクライアントと接続するための最小限のデータしか置かず、文章データ本体は、こうしたプロトコルではアクセスできないデータベースに置くわけである。この二つのデータベースを関連づける手法としてリレーショナルを採用した。データの入力、修正、表示の時のみ一時的にリレーショナルキーをマッピングする。このマッピング操作はすべてスクリプトが担当する。一連のスクリプトの最後に用意した、「スクリプトの中断(待ち時間0秒)」によって、HTMLが一旦クライアントに送出されたのち、間髪を入れずマッピングしたリレーショナルキーを削除する。この一見単純とも思える手法で、データの改竄、のぞき込みは出来なくなる。さらにパフォーマンスを向上させ、より安全性を高めるため、リレーショナルキーをデータ要求ごとにランダマイズした。この手法で、一連のスクリプト内部何度か発生する、データベース全体のリレーショナルキー削除操作を省略することができ、十分なパフォーマンスが得られることが確認された。さらに、データ表示に計算式を介在させ、スクリプトごとに細かい閲覧許可を設定することで、意図しない表示フォーマットとスクリプトの組み合わせによるデータの散逸、改竄を防ぐことを可能とした。 このパーシャルリンク、計算式によるフィールドロック、リレーショナルキーのランダマイズによるパフォマンスアップを組み合わせ、スクリプト実行許可を、クライアント情報と、認証時の一時鍵との組み合わせで確実な物にするわけである。 今回のデモでは、認証自体をどのように実現するかも合わせてプレゼンテーションした。認証にはパスワードを利用したが、パスワード自体をブラウザ内部でJavaScriptを利用した128bitのダイジェスト関数、MD5で暗号化し、送出する。暗号化されたパスワードは、ファイルメーカー側に保存される。認証時には、セッションごとに配給される、ランダムコードをもとに、ブラウザ内部でパスワードとランダムコードによる暗号化を行う。同時にファイルメーカー内部に保存された暗号化パスワードと、ランダムコードを合成し、再度暗号化する。こうしてブラウザとファイルメーカー内部の両方で生成されたパスコードが一致した場合に、認証とする。 この手法では、たとえランダムコードをみても、流通しているパスコードを盗み見たとしても、もとのパスワードを類推することは不可能であり、パスコードはログインのたびに、新しい物が要求される。接続を保つ公開データベースは、排他処理を厳重に行い、さらに一定時間ごとに使用されていないデータベースを削除することで、強固な認証を実現した。 これらの実現にはブラウザ内部だけではく、ファイルメーカー側にも同様のダイジェスト関数が必要だが、今回はプラグインをあらたに用意することで実現している。 このようにして、webコンパニオン単体でも、十分なセキュリティを持つデータベースの公開が可能であり、こうした手法自体は、より柔軟な画面デザインのためにこれまでも行われてきた、リレーションの活用の応用であることから、実際に駆動するグループウェアの作成のために使用した。デモでは、このグループウェアであるcom-schedulerの動作画面も紹介した。 |
|
懇談)▲Top 持ち込みネタ2.iTour(アイツアー)のおはなし。JOEさん |
|
ディスカッション
コメントは受け付けていません。