- ベストアンサー
コンテンツを守りたい
かならず、 ID、パスワード認証ページで認証されてから、 会員ページとコンテンツを表示させたいのですが、 今回作成したサイトですと、 会員用FLASHコンテンツの URL を覚えておけば、 会員以外の人でもFLASHコンテンツが見れてしまいます。 どう対策すればいいのですか? 宜しくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>下記の方法はどうすればいいのですか? サイト全体の管理方法とかサーバ仕様だとかでやり方は変わってくるとおもいます。 例えばサイト全体をBASIC認証で保護しておく。 PHPからBASIC認証の情報(IDとかパスワードとか)は扱えるので、認証情報を取得したいときはそれで使える。 他の方法としては、FLASHのファイルをおいてあるディレクトリに例えばapacheであれば、.htaccessなどでリファラーを見て自分のところのURLになっていなければはじく。 他にもブラウザからはアクセスできない場所にFLASHファイルを置いておき、FLASHファイルへのアドレスを書くところ(htmlで画像を表示させる場合にimgタグのsrc属性に記述するような部分)にはphpファイルとパラメータとしてファイル番号などを指定する。 例としてimgタグでいえば、 <img src="./viewer.php?file=123456"> ブラウザから直接アクセスできないところとしては、例えばpublic_html以下しか見えないのであれば、public_htmlと同じ階層に専用のディレクトリを作る。 phpファイルでは、認証済みかチェックして、認証済みでなければエラーを返し、認証済みであればファイル(ファイル名ではなく、ファイルデータ)を返すようにする。 まぁ前回答の認証のやり方も今回のやり方も、方法の一つに過ぎず、いろいろと方法はあるので調べてみることをお勧めしますが。
その他の回答 (3)
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 んっと…「どれくらいの強度で」守りたいのか、言い方を変えると「どれくらいの労力が割けるのか」という話になるのですが。 BASIC認証は非常に簡単ですが、あれは認証とは呼べないほどにお粗末なモノなので。「認証しているっぽく見せかけたい」を超える用途には不向きです。 PHPが標準で提供しているsession関数群は非常に脆弱でアタックがしやすいので、ある程度以上の強度を求めるのであれば、やはり不向きです(メモリリークもしますしねぇ)。 このあたりは「要求強度とかけることができる費用とのバランス」できまります。 基本的には「きちんとプロに相談」がよろしいかと。 もし個人コンテンツなら…まぁ、BASIC認証とか、PHPのsession関数でよろしいのではないかと思います。
お礼
ありがとうございました。今回は自分で解決したのですが、いちど専門家にきいてみます。ありがとうございました。
- yambejp
- ベストアンサー率51% (3827/7415)
basic認証やsql認証をセキュアで管理すればよい のでは? フラッシュだろうが画像だろうが、基本的には authの対象になるでしょう
お礼
今回は、サイト内の他のページからも呼び出すので、毎回認証画面が出るのは困るので、画像レスポンスを返すPHP ページをつくり、そのページで認証し、認証OKならイメージレスポンスを返し、HTML の IMG SRC タグに指定する方法でおこないました。私の足りない説明なか、アドバイス本当にありがとうございました。
- kalze
- ベストアンサー率47% (522/1092)
PHPカテゴリでの質問なので、PHPでかかれているという前提で。 (方法としては別の言語でもいいです) セッションを利用するなどして認証済みかどうかをすべてのページでチェックする。 各ページの先頭で以下のような処理をする。 ・セッションを開始 ・セッションに認証済みかどうかを判定するフラグ(変数)を用意しておき、それが認証済みになっていたらページを表示、認証済みでなければ、そのページのURL(元URL)をセッション変数に保存し、ログインページにリダイレクトする。 ログインページでは、IDとパスワードを入力させ、送信させる。 送信されたIDとパスワードをチェックして、問題なければセッション変数に認証済みフラグを立てる。 元URLがセットされていれば、そのページへリダイレクトし、されていなければデフォルトのログイン後に表示させるページにリダイレクト(または普通に表示)させる。 同時に、フラッシュファイル自体に直接リンクされると認証に関係なくみれてしまうので、フラッシュファイル自体に直接リンクできないようにする仕組みも必要かとおもいます
お礼
ありがとうございます。 知りたい情報、ご丁寧な解説ありがとうございました。 お陰さまでばっちり実現できました。 本当にありがとうございました。
補足
ありがとうございます。 下記の方法はどうすればいいのですか? リファラーなどで跳ねるしかないのでしょうか? 重ね重ね、よろしくお願いいたします。 >同時に、フラッシュファイル自体に直接リンクされると認証に関係なくみれてしまうので、フラッシュファイル自体に直接リンクできないようにする仕組みも必要かとおもいます
お礼
ありがとうございます。 知りたい情報、ご丁寧な解説ありがとうございました。 お陰さまでばっちり実現できました。 本当にありがとうございました。