ページ 11

商用ライセンス購入での利用者制限ページについて

Posted: 2007年7月31日(火) 18:41
by tkys
いつもお世話になっております。

ある学校法人のサイトを作成しており、
そのため商用ライセンスをひとつ購入しました。

一部のページにアクセス制限をかけるので
その部分のCMSDは別にしようと考えています。

この場合は商用ライセンスをもう一つ購入する必要性がありますでしょうか?

「商用ライセンスをご購入頂けば、利用者制限サイトでのご利用に制限はありません。」と表記があり、大丈夫かなと思いましたが、念のため質問させていただきました。

よろしくお願いします。

Re: 商用ライセンス購入での利用者制限ページについて

Posted: 2007年8月01日(水) 00:05
by webmaster
 tkysさん、ご質問ありがとうございます。

 ご質問の件なのですが、申し訳ありません、CMS Designer本体を複数インストール
する場合には、複数のライセンスご購入が必要となります。
 分かりにくい表現で申し訳ありませんでした。m(__)m

 個人非商用ライセンスの場合には、利用者制限ページを作ることはできないのですが、
商用ライセンスをご購入頂ければ、利用者制限ページでもご利用いただけます、
という意味でございました。

 CMS Designer本体は1つで、埋め込みページ側を個別に利用者制限するという
運用であれば、もちろんライセンスは1つでOKです。
 ただこの場合、画像やファイルなどは利用者制限をかける事が事実上不可能な為、
ほとんどのケースでNGになるかと思います。
(全コンテンツを利用者制限するのは可能なのですが、一部のみ、という運用が
難しくなっております)

 CMSDの仕組みやhtaccessによる利用者制限方法に詳しい方であれば、CMSD
本体1つで一部のコンテンツのみ利用者制限をかける、という事はいちおう可能
なのですが、かなりマニアックかつややこしい、敷居の高い方法になります。
 CMSD初心者にはお勧めできません。
 ご興味がある場合には再度ご質問頂ければ、概念のみご説明します。

 以上、その他ご質問がございましたらまたご連絡頂ければ幸いです。

Posted: 2007年8月01日(水) 18:01
by tkys
webmasterさま
ご返答ありがとうございました。
複数ライセンス購入の件、了解しました。
質問しておいてよかったです。

CMSD本体1つで一部のコンテンツのみ利用者制限をかける件ですが
少々興味があります。
概念のみで構いませんので教えていただけますでしょうか?

よろしくお願いいたします。

Posted: 2007年8月02日(木) 11:40
by tsu
制限をかけたい特定のコンテンツを例えば、"auth.xxx.com"というサブドメインからのみエントリデータを読めるようにするとか。

Posted: 2007年8月02日(木) 14:08
by webmaster
 ありがとうございます。
 概念のみ、説明させて頂きます。

 大前提として、CMS Designerは、コンテンツの一部に利用者制限(アクセス制限)
をかける事を想定して作られていません。

 例えば、CMS Designer「全体」にアクセス制限をかける方法は、次の通りとなります。

(1) cmsdesignerフォルダ全体にアクセス制限をかける。
(2) コンテンツを埋め込んだ側の.phpファイルにも個別にアクセス制限をかける。

 もちろん、サイト全体にアクセス制限をかけてしまうのが最も手っ取り早い方法です。

 ここで、例えば a.php と b.php という2つのコンテンツ埋め込みページがあったとして、
a.phpのみにアクセス制限をかけ、b.phpは誰からでも閲覧できるようにしたとします。
 ところが、b.phpにCMS Designer管理下の画像データが埋め込まれている場合、
画像データのURLは

 http://yourdomain.com/cmsdesigner/viewimg.php?xxxxxxx.....
 
 というものになります。
 (1)によってcmsdesignerフォルダにはアクセス制限がかかっていますから、
この画像は表示することができません。

 b.phpのHTML自体は表示できても、そのページ内の画像が表示できない、という
ことになります。

 画像データを取り扱わない場合には問題ないのですが、ほとんどの場合、
アクセス制限をかけたいページには画像が表示される為、問題となります。

 では、(1)のアクセス制限をはずせばいいのではないか?となるのですが、
これも次のような問題があります。

 確かにb.phpは画像も含めて誰からも見れるようになります。
 また、a.phpにはアクセス制限がかかっているのでページを開くことが
できません。

 しかし、a.phpに表示されている画像のURLは、先ほども挙げたように
cmsdesignerフォルダ内のviewimg.phpというスクリプトを介して表示
されており、cmsdesignerフォルダにアクセス制限がかかっていない状況では
画像直接リンクによって誰でも表示できてしまいます。

 結局、cmsdesignerフォルダにアクセス制限をかけるしかないのですが、
そうするとアクセス制限をかけたくないページの画像まで表示できなくなる、
という問題が発生してしまうのです。

 これを避ける方法として、次のような方法が考えられます。

(1) cmsdesignerフォルダの viewimg.php、dlfile.php にのみアクセス制限を
 かける。

(2) アクセス制限を外したいコンテンツについては、該当のエントリフォルダの
 アクセス制限を外す(初期状態ではdataフォルダに.htaccessがあり、アクセス
 制限されています)。

(3) 画像を表示する際に、<img src="{myimage}" />の方法ではなく、
 エントリフォルダ内の画像ファイルを直接表示するようにする。
 ※画像ファイル名は、
  <img src="cmsdesigner/data/entry/ENTRYNAME/{myimage@src}" />
  で求められる。

 (1)によって、CMS Designerの画像およびファイル表示にアクセス制限が
かけられます。アクセス制限をかけたいページについては、同様にページ自体に
アクセス制限をかければOKです。
 アクセス制限を外したいページ(コンテンツ)については、(2)(3)の対処を
行います。この場合、画像表示はCMS Designerを介さないので、アクセス制限
を抜けることができます。

 問題点として、アクセス制限を外したエントリフォルダ内のデータは
外部から丸見えになってしまう為、例え「非公開」に設定したとしても
データを覗き見される可能性がある、という事です。
 しかし、一般的にウェブ上のCMSに登録されたデータというのは公開される
事を前提としている為、覗き見されたところで問題になるケースは稀でしょう。

 もう一点、この方法を使うと画像の縮小表示ができなくなる為、
HTML上で縮小して表示することになります。

 以上、解説はしてみたのですが、お分かりの通り大変複雑な方法であり、
よほどよく理解していないと結局「ちゃんとアクセス制限できてなかった」
という事にもなりかねません。
 大変申し訳ないのですが、どうしようもない場合の緊急時対策として、
ご自分の責任の範囲内でご利用頂ければと思います。