version 11 (Modified)
4D Webサーバのセキュリティは以下の要素に基づきます:
・Webパスワード管理システム (BASIC モードとDIGESTモード) とOn Web Authentication データベースメソッドの組み合わせ
・一般Webユーザの定義
・デフォルトHTMLルートフォルダの定義
・データベースのプロジェクトメソッドごとの“4DACTION、4DMETHODおよび4DSCRIPTで利用可” プロパティの定義
Note: 接続自身のセキュリティはSSLプロトコルで管理できます。詳細な情報はSSLプロトコルの使用の節を参照してください。
Webアクセスのパスワード管理システム
BASICモードとDIGESTモード
データベースの環境設定で、Webサーバに適用するアクセスkんトロールシステムを設定できます。2つの認証モード、BASICモードとDIGESTモード (v11より) が提供されています。認証モードはユーザ名とパスワードに関する情報の取得と処理方法に関連します。
・BASICモードでは、ユーザが入力したユーザ名とパスワードは暗号化されずにHTTPリクエストに含められて送信されます。この場合情報は第三者に盗聴・使用される可能性があるので、トータルなセキュリティは確保されません。
・DIGESTモードはより高いセキュリティレベルを提供します。認証情報は複合が困難な一方向ハッシュを使用して処理されます。
ユーザにとり、いずれの認証モードを使用するかは透過的です。
Notes:
- 互換性の理由から、バージョン11に変換された4Dデータベースでは、BASIC認証モードがデフォルトで使用されます (“パスワードを使用” オプションが以前のバージョンでチェックされていれば)。Digestモードを使用するには明示的に指定しなければなりません。
- Digest認証はHTTP1.1の機能で、すべてのブラウザでサポートされているわけではありません。例えばバージョン5.0以降のMicrosoft Internet Explorerがこのモードを受け入れます。Digestモードが有効な時に、この機能をサポートしないブラウザがWebサーバにリクエストを送信すると、サーバはリクエストを拒否し、エラーメッセージをブラウザに返します。
環境設定ダイアログボックスで、Webサーバに適用するアクセスコントロールシステムを定義できます。これを行うには環境設定ダイアログボックスで、Webテーマの詳細ページを表示します:
"Webパスワード"エリアで、3つのオプションから選択できます:
・パスワードなし: Webサーバへの接続に認証を実行しない。この場合:
- On Web Authentication データベースメソッドが存在すれば、それが実行され、$1と$2に加え、ブラウザとサーバのIPアドレス ($3と$4) だけが提供されます。ユーザ名とパスワード ($5と$6) は空です。この場合、ブラウザのIPアドレスやリクエストされたサーバのIPアドレスを使用して、リクエストをフィルタできます。
- On Web Authentication データベースメソッドが存在しない場合、接続は自動で受け入れられます。
・BASIC認証のパスワード: BASICモードの標準認証です。ユーザがサーバに接続するとダイアログボックスがブラウザ上に表示され、ユーザ名とパスワードの入力を求められます。これら2つの値は他の接続パラメタ (IPアドレス、URI) とともにOn Web Authentication データベースメソッドに送信され、開発者はそれを処理できます。
Note: この場合、On Web Authentication データベースメソッドが存在しないと、接続は拒否されます。
このモードを有効にすると、4Dパスワードを含むオプションが有効になり、カスタムパスワードシステムの代わりに、あるいは追加として使用できます。
・DIGEST認証のパスワード: DIGESTモードの認証。BASICモードのように、ユーザは接続時にユーザ名とパスワードを入力します。これら2つの値は暗号化されて、他の接続パラメタとともにOn Web Authentication データベースメソッドに送信されます。この場合Validate Digest Web Password コマンドを使用してユーザを認証しなければなりません。
Notes:
- これらの設定を変更した場合は、Webサーバを再起動しなければなりません。
- 4DリモートモードのWebサーバでは、すべての4Dリモートモードのマシンが同じユーザテーブルを共有することを覚えておいてください。ユーザ/パスワードの検証は4D Serverアプリケーションで行われます。
BASICモード: パスワードとOn Web Authentication データベースメソッドの組み合わせ
BASICモードを使用する場合、4D Webサーバへの接続をフィルタするシステムは、2つのパラメタの組み合わせに基づきます:
・環境設定ダイアログボックスのWebパスワードオプション
・On Web Authentication データベースメソッドの存在
組み合わせは以下のとおり:
“BASIC認証のパスワード”が選択され、“4Dパスワードを含む”が選択されていない場合:
・On Web Authentication データベースメソッドが存在すれば、それが実行され、すべての引数が渡されます。そしてユーザ名とパスワード、さらにブラウザとWebサーバのIPアドレスを使用して、より精密に接続をフィルタできます。
・On Web Authentication データベースメソッドが存在しない場合、接続は自動で拒否され、認証メソッドが存在しない旨のメッセージがブラウザに送信されます。
Note: ブラウザから送信されたユーザ名が空の文字列で、かつOn Web Authentication データベースメソッドが存在しない場合、ブラウザにパスワードダイアログボックスが送信されます。
“BASIC認証のパスワード” と “4Dパスワードを含む” が選択されている場合:
・ブラウザから送信されたユーザ名が4Dのユーザテーブルに存在し、パスワードが正しい場合、接続は受け入れられます。パスワードが正しくなければ接続は拒否されます。
・ブラウザから送信されたユーザ名が4Dに存在しない場合、2つの可能性があります:
- On Web Authentication データベースメソッドが存在すれば、引数$1, $2, $3, $4, $5, $6に値が渡されます。ユーザ名とパスワード、さらにブラウザとWebサーバのIPアドレスを使用して、より精密に接続をフィルタできます。
- On Web Authentication データベースメソッドが存在しない場合、接続は拒否されます。
DIGESTモード
BASICモードと異なり、DIGESTモードは標準の4Dパスワードシステムと互換がありません。4DパスワードをDigest Web認証に使用できません。このモードが選択されると“4Dパスワードを含む”オプションは選択不可となります。Webユーザの認証は、(テーブル等を使用した) カスタマイズされた方法で管理しなければなりません。
DIGESTモードが有効の時、On Web Authentication データベースメソッドの$6 引数 (パスワード) は常に殻空の文字列が渡されます。実際このモードを使用するとき、この情報はネットワークからクリアテキストでは渡されません。この場合接続リクエストはValidate Digest Web Password コマンドを使用して検証しなければなりません。
4D Webサーバのアクセスシステムの処理を以下に図示します:
robotsについて (セキュリティメモ)
特定のrobots (クエリエンジン, スパイダー...) はWebサーバやスタティックページをスクロールします。ロボットにサイト全体へのアクセスをさせたくない場合、アクセスを許可したくないURLを指定できます。
これを行うには、ROBOTS.TXTファイルをサーバのルートに置きます。このファイルの内容は以下の構造になっていなければなりません:
| User-Agent: <name> | |
| Disallow: <URL> または <beginning of the URL> | |
例題:
| User-Agent: * | |
| Disallow: /4D | |
| Disallow: /%23%23 | |
| Disallow: /GIFS/ |
“User-Agent: *” は、すべてのrobotsが対象であることを示します。
“Disallow: /4D” は、robotsに /4D から始まるURLへのアクセスを許可しないことを通知します。
“Disallow: /%23%23” は、robotsに /%23%23 から始まるURLへのアクセスを許可しないことを通知します。
“Disallow: /GIFS/’ は、robotsに /GIFS/ フォルダおよびそのサブフォルダへのアクセスを許可しないことを通知します。
他の例題:
| User-Agent: * | |
| Disallow: / |
この場合robotsにサイト全体へのアクセスを許可しないことを通知します。
一般Webユーザ
事前に4Dパスワードテーブルに登録したユーザを、“一般Webユーザ”として定義できます。この場合、ブラウザに接続するブラウザは、それぞれこの一般ユーザに割り当てられたアクセス認証や制限を使用できます。これによりデータベースの異なる部分へのブラウザによるアクセスを簡単にコントロールできます。
Note: テーブルやメニューなどデータベースの様々なパーツへのブラウザからのアクセスを制限することを可能にするこのオプションと、パスワードシステムとOn Web Authentication データベースメソッドで管理するWebサーバ接続コントロールシステムとを、混同しないでください。
一般Webユーザを定義するには:
1. デザインモードでツールボックスのユーザエディタを開き、最低1人のユーザを作成する。
ユーザにパスワードを設定することもできます。
2. 他の4Dエディタを使用して、このユーザに必要なアクセス認証あるいは制限を設定します。
3. 環境設定ダイアログで、Webテーマの詳細ページを開く。
“Webパスワード”エリアに一般Webユーザドロップダウンリストがあります。デフォルトで一般WebユーザはDesignerであり、ブラウザはデータベース全体にフルアクセスがあります。
4. ドロップダウンリストからユーザを選択し、ダイアログを受け入れます。
データベースへの接続が認証されたすべてのWebブラウザは、一般Webユーザに割り当てられたアクセス認証と制限を使用します (BASICモードと“4Dパスワードを含む”オプションがチェックされ、接続したユーザが4Dパスワードテーブルに存在しない場合を除く、以下参照)。
BASIC認証との相互作用
"BASIC認証のパスワード"は一般Webユーザがどのように動作するかには影響を与えません。このオプションのステータスにかかわらず、データベースに接続が許可されたすべてのWebブラウザに、“一般Webユーザ”に割り当てられたアクセス認証と制限が適用されます。
しかし"4Dパスワードを含む"オプションが選択されていると、2つの可能性が発生します:
・ユーザ名とパスワードが4Dパスワードテーブルに存在しない場合。この場合接続がOn Web Authentication データベースメソッドで受け入れられると、一般Webユーザのアクセス権がブラウザに適用されます。
・ユーザ名とパスワードが4Dパスワードテーブルに存在する場合、“一般Webユーザ”は無視され、ユーザは固有のアクセス権で接続します。
デフォルトHTMLルートフォルダの定義
環境設定のこのオプションを使用して、4Dがブラウザに送信するスタティック/セミダイナミックなHTMLページ、ピクチャなどを検索するフォルダを指定できます。
さらにHTMLルートフォルダは、Webサーバのディスク上で、ファイルに対するアクセスができない階層を定義することにもなります。このアクセス制限はWebブラウザのURLやSEND HTML FILEなどの4D Webサーバコマンドに適用されます。ブラウザからデータベースに送られたURLや4Dコマンドが、HTMLルートフォルダよりも上の階層にアクセスしようとすると、サーバーエラーが返されます。
デフォルトで、4DはWebFolderという名前のデフォルトHTMLフォルダを定義します。Webサーバの起動時にこのフォルダが存在しなければ、HTMLルートフォルダは物理的にディスク上に作成されます。
デフォルトの場所を保持すると、ルートフォルダは以下の場所に作成されます:
・4Dローカルモードと4D Serverでは、データベースストラクチャファイルと同階層。
・4Dリモートモードでは、4Dデータベースのローカルフォルダ (Get 4D folder コマンド参照)。
環境設定で、HTMLルートフォルダの名前と場所を変更できます (Webテーマの設定ページ):
“デフォルトHTMLルート”入力エリアに、新しいフォルダのパスを入力します。
このダイアログボックスに入力されるアクセスパスは相対パスです。起点はデータベースのストラクチャファイルを含むフォルダ (4Dローカルモードまたは4D Server) 、または、4Dアプリケーションやソフトウェアパッケージを含むフォルダです (4Dリモートモード)。
データベースのマルチプラットフォーム互換性のため、4D Webサーバはアクセスパスを定義するために特別な記法を使用します。シンタックスルールは以下のとおりです:
・フォルダはスラッシュ (“/”) で区切ります。
・アクセスパスはスラッシュ (“/”) で終わってはいけません。
・フォルダ階層で1つ上にあがるには、フォルダ名の前にピリオドを2つ “..” 置きます。
・アクセスパスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダをデータベースや4Dリモートモードのフォルダにしたい場合を除く、以下参照)。
例えば、HTMLルートフォルダを “4DDatabase” フォルダのサブフォルダ “Web” にしたい場合、4DDatabase/Webと入力します。
HTMLルートフォルダをデータベースフォルダあるいは4Dリモートフォルダにして、それより上階層へのアクセスを禁止したい場合、“/” を入力します。ボリュームへのアクセスを自由に行うためには、“デフォルトHTMLルート” エリアを空にします。
警告: 環境設定ダイアログボックスでデフォルトHTMLルートフォルダを定義しないと、データベースのストラクチャファイルあるいは4Dアプリケーションが含まれるフォルダが使用されます。この場合アクセス制限がありませんので注意してください (ユーザはすべてのボリュームにアクセスできます)。
Notes:
・HTMLルートフォルダを環境設定ダイアログで更新すると、アクセスが制限されているファイルを格納しないようにするため、キャッシュがクリアされます。
・SET HTML ROOT コマンドを使用して動的にHTMLルートフォルダを定義できます。この場合、更新はワークセッションすべてのカレントWebプロセスに適用されます。HTMLページのキャッシュはクリアされます。
4DACTION、4DMETHODおよび4DSCRIPTで利用可能
特別な4DACTION (非コンテキストモード) と 4DMETHOD (コンテキストモード) URLや 4DSCRIPT、4DVAR そして 4DHTMLVAR タグを使用すると、Webに公開された4Dデータベースのプロジェクトメソッドを実行できます。例えばリクエスト http://www.server.com/4DACTION/Erase_All は Erase_All プロジェクトメソッドが存在すればそれを実行します。
このメカニズムは特にインターネット上のユーザが故意に (あるいは予期せず) 、Web用でないメソッドを実行してしまうという、データベースのセキュリティ上のリスクがあります。このリスクは以下の3つの方法で回避できます:
・4Dパスワードシステムを使用して、プロジェクトメソッドへのアクセスを制限する。欠点: この方法は4Dパスワードシステムを使用する必要があり、すべてのタイプのメソッド実行を禁止します (HTMLタグに利用を含み)。
・On Web Authentication データベースメソッドを使用してURLから呼び出されるメソッドをフィルタする。欠点: データベースに数多くのメソッドが定義されている場合、この方法は管理が困難になります。
・4DACTION、4DMETHODおよび4DSCRIPTで利用可能オプション (メソッドプロパティ) を使用する:
このオプションを使用して、特別なURL 4DACTION や 4DMETHOD、および4DSCRIPT、4DVAR、4DHTMLVARタグを使用して呼び出されるプロジェクトメソッドごとに、それを許可するかしないか設定できます。このオプションがチェックされていないと、そのプロジェクトメソッドは特別なURLやタグなどを使用したHTTPリクエストからは呼び出せません。他方、これらのメソッドを他のタイプの呼び出しでは使用することができます (フォーミュラや他のメソッドからの呼び出しなど)。
このオプションはデフォルトでチェックされていません。4DACTION や 4DMETHOD Web URLや、4DSCRIPT、4DVAR、4DHTMLVARタグなどを使用して呼び出すメソッドは、明示的に指定する必要があります。
エクスプローラで、“4DACTION、4DMETHODおよび4DSCRIPTで利用可能”が指定されたプロジェクトメソッドには以下のアイコンが表示されます:
参照
On Web Authentication データベースメソッド, On Web Connection データベースメソッド, SSLプロトコルの使用.