DBの設定

DBの設定について説明しておこう。

アプリケーションのプロパティ

起動ページ

アプリケーションのデフォルトページは「起動」タブで設定。 通常は、文書の一覧を表示するページを指定することが多い。

起動タブの設定

XPageのプロパティ

一般タブ

テーマ

OneUIにどのテーマを使うかの設定。 実はよくわかってない。使えるOneUIのCSSが切り替わるんじゃないかと予想してるんだけど。

私のサンプルだと"OneUI V2"を選んでおく。

OneUIの設定

エラー処理

エラー発生時の処理方法。

デバッグ時は「実行時エラーページ」にチェックをいれ、エラー箇所のソースコードが表示されるようにしておくと便利。 本格運用が始まったらチェックをはずしておく。

エラー処理

タイムアウト

アプリケーションごとにセッションタイムアウトを設けたいなら設定する。 当然。サーバの認証をセッション方式に変更しておかないと意味はない。 また、サーバ全体のセッションタイムアウトもサーバ全体の設定で決めているだろうから、通常は指定する必要はない。

ファイルアップロードオプション

アプリケーションごとにアップロードできるファイルサイズの最大値を設定できる。 サーバ全体の最大値は多めに設定しておき、各アプリケーションでちょっとサイズを絞りたいときに設定する。

他の設定

実はあまりよく知らない。特に困らなければ変えなくていいいんじゃね?

永続性タブ

永続性オプション

XPagesのサーバでは各ユーザーのページ情報を何画面か保持している。その保持する方法をファイルに残すかメモリに残すかの設定。 デフォルトはディスク上だけど、JavaScriptでfunctionオブジェクトを追加するようなコードを書くと、XPagesのバグというか仕様でえらーになるらしい。

そういうときはしかたないので、オンメモリを選んでおく。アクセス数が多いサイトだと使えないかもしれない。

永続性

ページの生成タブ

XPageライブラリ

Extention Libraryを使うときにはチェックをいれておく。

Extention Lib.

アクセス制限

XPagesアプリをリリースするときには、フォームやビューにWebから直接アクセスされるのは避けたほうがいい。

DominoにはURLコマンドというものが用意されてて、URLでごにょごにょすると、ビューやフォームを開くことができてしまう。

たとえば以下のURLではビューを開けてしまう。もちろんビューの名前を知っておかないとだめだけど、あてずっぽうにいろいろやってればそのうちヒットする。

  • http://servername/dbName.nsf/viewName/

こんなページが開いてしまう。

ビューのページ

これはXPagesが始まる前に用意されたDominoのWebアクセス用の画面。これを放置してると、XPages側でいろいろ表示制限を欠けている情報まで丸見えになることもある。 文書リンクを開けば、文書のフォームも表示されてしまい、セキュリティもあったものではない。

文書が開けたら、URLパラメータで"?EditDocument"をつければ編集モードの画面になってしまうし、文書保存用のコマンドもある。 もちろん文書のアクセス権を超えての操作はできないんだけど、アプリによってはXPages上のロジックで編集を制限している場合もあるのだが、こういう裏口があることを 知っておかないと結構大変なことになるかもしれない。

他にもDBのヘルプや「アプリケーションについて」の文書をひらくためのURLコマンドも用意されているので、設計情報などを「アプリケーションについて」にメモとして 残してたりする場合は勝手にアクセスされないよういガードしておく必要がある。

ビューのWebアクセス制限

ビューをWebから直接開けないようにするには、以下の設定をいじる。ビューごとに設定しないといけないのでちょっと面倒ではある。

ビューのWebアクセス制限

フォームのWebアクセス制限

フォームのプロパティでもWebアクセス時にXPageを開くように設定。これも各フォームごとに設定。

フォームのWebアクセス制限

さらにフォームの設計が表示されるURLコマンドもある。

  • http://servername/dbName.nsf/formName?OpenForm

対策無しだとこんな表示が出る。
フォームのWebアクセス制限

これはフォームの設計画面で全体を選択しておき、文字のプロパティでWebアクセス時は非表示に設定して隠しておく。

ヘルプ文書やアプリケーションについて

「ヘルプ」や「アプリケーションについて」は以下のURLコマンドで開くことができる。

  • http://servername/dbName.nsf/$help → ヘルプ文書
  • http://servername/dbName.nsf/$about → データベースについて

必要ないなら、何も記述しなければいい。 どうしても何か書かないといけないなら、文字のプロパティでWebアクセス時は非表示するようにしておく。

ヘルプ文書などのWebアクセス制限