AS3からのテキストファイル読み込みに関する問題

このQ&Aのポイント
  • htaccessを設定した結果、AS3からのテキストファイル読み込みができなくなりました。
  • txtフォルダーへの直接リンクを防ぐため、htaccessファイルに設定を行ったが、テキストファイルが読み込まれなくなった。
  • AS3からPHPを呼び出し、テキストファイルの内容を表示する方法も考えられるが、AS3から直接読み込む方式を優先したい。
回答を見る
  • ベストアンサー

htaccessを設定するとAS3から読み込めない

現在、ActionScript3.0からテキストファイルを読み込んで、 その内容を表示するというプログラムを組んでいます。 swfファイルと、txtファイルは以下のように配置されています。 root-┐     │     ├swfフォルダー     │     └txtフォルダー   swfフォルダーには、作成したswfファイルを配置し、 txtフォルダーに配置したテキストファイルを読み込ませています。 txtフォルダーへの直接リンクを防ぐため。 (このフォルダーに配置したテキストファイルをブラウザ上には表示させたくない) htaccessファイルに、以下のような記述を行い、 配置したところ、配置する前には読み込めていたテキストファイルが 読み込まれなくなってしまいました。 swf上では全く表示されません。 <FilesMatch "\.(inc|dat|log|txt|csv)$"> Order allow,deny deny from all </FilesMatch> SetEnvIf Referer も試してみましたが、効果がありませんでした。 txtフォルダー内には、PHPでテキストファイルを読み込ませる APから読ませるテキストファイルを配置していますが、 こちらの方は問題なく読み込むことが出来ます。 原因が全くつかめない状態です。 自分としては、AS3からテキストファイルを読み込むPHPを呼び出して、 その戻り値を表示させるという方法も採れると思いますが、 出来れば、AS3から直接読ませる方式をとりたいと思っています。 回避策、解決策をご存じの方がいらっしゃいましたら、 ご教示いただければと思います。 以上、よろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

こんばんは。 うーん・・・、難しいですね。 >こういった事象の場合、どのように解決しているのかを >知りたいところです。 そうですね。 普通はどうやってるんですかね??? PHPをかませてもいいのなら・・・。 mod_rewriteで「txt」へのアクセスをすべて拒否。 PHPは「require・・・またはinclude」なので問題なし。 で、問題のPHPへのアクセスは、 FLASH側から何かパラメータを渡す。 PHP内部で、パラメータがあればtxtファイルを読み込んで返す。 なければ弾く・・・。 パラメータが隠蔽できれば、まぁそれなりに・・・。 あまりいい方法が思い付きません・・・。

y_enomoto
質問者

お礼

こんにちは。 その後、いろいろと調べてみましたが、 swfからのアクセスは、直接リンクと同じ扱いとなり、 htaccessで制限をかけてしまうと、アクセスできなくなってしまうようです。 このことから、swfからアクセスするファイルを格納するフォルダ に対しては、htaccessの制限対象外とすることにしました。 おつきあいいただきまして、ありがとうございました。

y_enomoto
質問者

補足

こんにちは 本当にありがとうございます。 一点補足させていただければと思います。 swfと対象txtファイルを同一階層においてテストを行いましたが、 結果は同じでした。 考え方を変える必要があるかもしれません。 私ももう少し考えてみます。 takaさん、おつきあいいただきまして、 本当にありがとうございました。 この件につきましては、回避策をお持ちの方もいらっしゃるかもしれませんので、 もう少しこのままにさせていただきます。

その他の回答 (4)

回答No.4

こんにちは。 ダメダメですね・・・。 これ、落ち着いて考えると、非常に難しいですね・・・。 例えばURL手打ちなどは、 RewriteCond %{HTTP_REFERER} !^自ドメイン$ のように弾く事はできますが、普通にリンクから辿られたら、はじく事ができません・・・。 (リンク張るやつがおるかどうかは知らんが・・・) PHP経由でtxtファイルを読み込ませても、結局PHPへの直リンは??? というパラドックスです・・・。 txtファイルをDocumentroot以外には置けないんですかね? それができれば早いんですが・・・。 swf側からの読み込みができんようになるんかなぁ・・・。

y_enomoto
質問者

お礼

こんにちは。 本当にtakaさんにはお手数おかけいたします。 >txtファイルをDocumentroot以外には置けないんですかね? >それができれば早いんですが・・・。 >swf側からの読み込みができんようになるんかなぁ・・・。 ドキュメントルート以外に置くことは可能なのですが、 コードを書き換えてやってみましたが、 残念ながらパスを認識することが出来ませんでした。 Basic認証で、パスワードファイルについては、 ドキュメントルート以外に置くというセオリーがありますので、 それを参考にしてみましたが、ActionSctiptでパスをそのように書いても、 ドキュメントルート配下からとしか認識しないようです。 swfでテキストを読み込ませるが、そのテキストへの直接リンクは 防ぎたいということはあると思うのですが、 こういった事象の場合、どのように解決しているのかを 知りたいところです。

回答No.3

こんばんは。 >swfからのアクセスも直接リンクとして見なされているか あぁ、そうか・・・。 これは酷い勘違いでした・・・。 結局は相対パスで書いても、GETアクセスが発生するので、直リン扱いになるんですね。 REMOTE_ADDR と組み合わせればいいのかな? RewriteEngine On RewriteBase / RewriteCond ${REMOTE_ADDR} !自分のアドレス(127.0.0.1でもいいかも?) ← じゃなければ RewriteRule ^.*\.txt$ - [F] とか。

y_enomoto
質問者

お礼

こんにちは。 回答ありがとうございます。 ご教示いただきました方法で設定してみましたが、 残念ながら事象は変わりませんでした。 一点確認させていただきたいことがございます。 >RewriteCond ${REMOTE_ADDR} !自分のアドレス(127.0.0.1でもいいかも?) ← じゃなければ この部分ですが、たとえば。 RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1 と指定した場合(.にはエスケープ文字が必要だと思いますので付加いたしました) ローカル上で上記の設定を行った場合、直接リンクは有効となると思いますが、 サーバ上で設定した場合、設定を行ったサーバ内のファイルからのアクセスも (本来ならば許可されるべきものからの)拒否してしまわないでしょうか? リモートアドレスは、127.0.0.1以外のアドレスが入ってくると思いますので。 アドバイスいただき、大変申し訳ございませんが、 以上、よろしくお願い申し上げます。

回答No.2

こんばんは。 まず、.htaccessを使用するなら、ドキュメントルート直下に置いてください。 httpd.confが編集できるなら、そちらでやった方がいいです。 >unable to include potential exec この2行(後半)は無視してください。 404エラーページを表示しようとしたが、それもできんかった・・・と言ってます。 >File does not exist: I:/sotsusei/SGP/html/[F] これがおかしいですね??? ブラウザからアクセスするアドレスは何になってますか? 今回は単純に.txtファイルへの直リンを禁止したいという要件ですので、mod_rewriteを使ってみたんですが・・・。 もしかしたら間違えた? RewriteRule ^.*\.txt$ [F] → RewriteRule ^.*\.txt$ - [F] かな?

y_enomoto
質問者

お礼

こんばんは。 回答ありがとうございます。 >httpd.confが編集できるなら、そちらでやった方がいいです。 ご指摘の通り、本来ならばこちらで定義するべきものですが、 今回のswfを動かすレンタルサーバの制限でhttpd.confを編集できない環境になっています。 そのため、htaccessで編集する方法しかなく、それに合わせるべく、 ローカル上もhtaccessで編集する方式をとっております。 >File does not exist: I:/sotsusei/SGP/html/[F] この件ですが、 >RewriteRule ^.*\.txt$ [F] → RewriteRule ^.*\.txt$ - [F] と変更したところ、上記メッセージは表示されなくなり、 直接リンクを防ぐことには成功いたしました。 ただ、swfからはアクセスできないままです。 access.logを見たところ、ちょっと気になるメッセージが表示されていました。 >127.0.0.1 - - [15/Jan/2011:22:42:06 +0900] "GET /sgp/text/keyimage/getsurei.txt HTTP/1.1" 403 276 テキストファイルをGETしようとして403(Forbidden)が表示されています。 このことから、swfからのアクセスも直接リンクとして見なされているか、 権限がないと判断されてしまっていると思われます。 swfからのアクセスは許可する的な記述が出来ればと私もいろいろと調べておりますが、 もし、アドバイスいただけるようであれば幸いです。 以上、よろしくお願い申し上げます。

回答No.1

こんばんは。 swfからtxtは、相対パスですよね? .htaccessで、 RewriteEngine On RewriteBase / RewriteRule ^.*\.txt$ [F] とか・・・。 これはtxtファイルへの直リンクに対して、403を返します。

y_enomoto
質問者

お礼

こんにちは。 早速の回答ありがとうございました。 >swfからtxtは、相対パスですよね? はい、その通りです。 アドバイスいただきました方法で早速試してみましたが、 残念ながら現象は変わりませんでした。 htaccessの位置につきましては、ルート直下とtxtフォルダ直下に それぞれ配置して試しましたが、現象は同じでした。 現在、ローカル上にxamppの環境を構築していますので、 apacheのエラーログを参照してみましたが、 以下の内容が表示されています。 [Sat Jan 15 18:11:39 2011] [error] [client 127.0.0.1] File does not exist: I:/sotsusei/SGP/html/[F] [Sat Jan 15 18:11:39 2011] [error] [client 127.0.0.1] unable to include potential exec "include/top.html" in parsed file I:/xampp/apache/error/HTTP_NOT_FOUND.html.var [Sat Jan 15 18:11:39 2011] [error] [client 127.0.0.1] unable to include potential exec "include/bottom.html" in parsed file I:/xampp/apache/error/HTTP_NOT_FOUND.html.var ファイルが見つからないというメッセージではないかと思います。 小生も引き続き調査いたしますが、 何かアドバイスいただけることがありましたら、ご教示いただければ幸いです。

関連するQ&A

  • .htaccessの記述

    さくらのレンタルサーバを使っています。 SetEnvIf User-Agent "Googlebot" shutout1 SetEnvIf User-Agent "Slurp" shutout2 SetEnvIf User-Agent "msnbot" shutout3 SetEnvIf Referer "google\.co\.jp" shutout4 SetEnvIf Referer "yahoo\.co\.jp" shutout5 SetEnvIf Referer "google\.com" shutout6 order allow,deny allow from all deny from env=shutout1 deny from env=shutout2 deny from env=shutout3 deny from env=shutout4 deny from env=shutout5 deny from env=shutout6 (改行) 新しくつくったページですので検索ロボットにはまだ拾われていないのでGmailで実験しましたが、http://mail.google.com/mail/~ からアクセスできてしまいます。アスキーモードで転送し、ファイル名もOKです。何がダメなのでしょうか… あと、「SetEnvIf Referer "google" shutout*」と記述すれば「google」を含むアドレスからのリンクはまとめてすべて拒否できますか? よろしければチェックをお願いします。

    • ベストアンサー
    • HTML
  • .htaccessの更新とIP拒否

    検索避けの為、meta/robots.txt/.htaccessを入れています。 今入れてるのは以下の.htaccessですが SetEnvIf REFERER "search.yahoo.co.jp" Ref1 SetEnvIf REFERER "google.co.jp/search" Ref2 SetEnvIf REFERER "excite.co.jp/search" Ref3 SetEnvIf REFERER "infoseek.co.jp/OTitles" Ref4 SetEnvIf User-Agent "Googlebot" Ref5 SetEnvIf User-Agent "Slurp" Ref6 SetEnvIf User-Agent "msnbot" Ref7 Order Allow,Deny Allow from all Deny from env=Ref1 Deny from env=Ref2 Deny from env=Ref3 Deny from env=Ref4 Deny from env=Ref5 Deny from env=Ref6 Deny from env=Ref7 入れて数ヶ月は検索結果に全く出なかったので「あー効いてるかな?」と思っていたのですが、先日yahooでにて自サイト名で検索かけたら一番上にヒットしました。 一応、そこから飛んでも403エラーが出て直接は来れないようになってはいますが…。クローラーに拾われるのは避けられてないってことですよね。 .htaccessの記述は最初のままなんですが、これって記述をたびたび変更したほうが良いのでしょうか?(たとえば順番や名前を変えるなど) 記述やクローラーの最新情報というものがなかなか見つからないので、けっこう前のデータを参考に作っているので…。 更にIPでも弾こうかとも考えていますがどのように表記するのが効果的でしょうか?

  • .htaccessについておしえてください。

    外部からjsファイルを直リンクなどで、見られないようにできないかと考えています。.htaccessで特定のサイトからのみ参照を許可するという記事を見ました。 例えばヘテムルのサーバでhttp://abc.heteml.jp/def/index.htmlからの参照を許可するのに、.htaccess に以下のように書きました。 SetEnvIf Referer "http://abc.heteml.jp/def/index.html" allow_ref SetEnvIf Referer "^$" allow_ref order deny,allow deny from all allow from env=allow_ref .htaccess については全然分かっていません。記事に載っていた内容を少し変える程度なので、詳しく教えていただきたいと思い、投稿しました。jsファイルを見られないようにすることはできるのか?また、.htaccessの参考サイトなどあれば教えてください。

  • .htaccessを読み込まなくなりました

    ちょっと事情があり、yahoo検索結果からのアクセスを拒否したいので.htaccessをトップに置いていたのですが、設置して2週間ほどは結果をクリックしてもちゃんとエラーページが出て、来れないようになってましたが、最近またつながるようになってしまい????です。 何故なのか理由がわかりません。ちゃんと効いていたようなので間違ってはいないはずなんですが…。 ちなみにタグは以下のものを入れています。あとrobots.txtも入れています。 SetEnvIf REFERER "search.yahoo.co.jp/search" Ref Order Allow,Deny Allow from all Deny from env=Ref yahooの方の機能などが原因なのでしょうか。 もぃご存知の方いらっしゃいましたら教えて下さい。

  • .htaccessについて教えてください。

    添付した画像のようなディレクトリ構造のサイトをつくりAndroidとiPhoneからのアクセスのみを許可するように (1)の.htaccessには SetEnvIf User-Agent "Android" ok1 SetEnvIf User-Agent "iPhone" ok2 order deny,allow deny from all allow from env=ok1 allow from env=ok2 と記述し、 http://adcde.heteml.jp/access/index.htmlからだけのjsファイルへのアクセスを許可しようと (2)の.htaccessには SetEnvIf Referer "^http://adcde\.heteml\.jp" ShowOK SetEnvIf Referer "^$" ShowOK <Files ~ "\.(js)$"> order deny,allow deny from all allow from env=ShowOK </Files> と記述しました。 PCからhttp://adcde.heteml.jp/accessとすると403 errorForbiddenとなり思ったようにいくのですが、PCからhttp://adcde.heteml.jp/access/js/test.jsとするとjavascriptの中身が表示されてしまいます。 AndroidとiPhone以外からのアクセスは(1)の.htaccessで拒否されるのでは?また、(2)の.htaccessでjsファイルへの直リンクを避けているのでは?と、うまくきません。.htaccessの記述や設置する場所、またヘテムルのサーバー側の原因かなどを教えていただきたく思い投稿しました。いろいろなサイトを調べながらの.htaccessの知識で、あまりよく分かっていません。詳しく教えていただければありがたいです。よろしくお願いします。

  • .htaccessで直リンク規制

    会員制のページの入ってるフォルダを.htaccessで指定されたところ意外からのアクセス(直リンク)を規制しようと思って以下の内容のファイルを置きました SetEnvIf REFERER "OOO\.ddo\.jp/OOO\.html" Lilith Order Deny,Allow Deny from all Allow from env=Lilith しかしこれだと、許可したページ(上記の「OOO\.ddo\.jp/OOO\.html」の部分)からのアクセスでもはじいてしまってForbiddenのエラーが表示されてしまいます。どう対処すればいいのでしょうか?アドバイスお願いします。

  • .htaccessによる検索結果からのアクセス拒否

    サイトにロボ避けをかけていたのですが、yahooのみ登録されてしまいました。 yahooトップの検索で自サイトの名前(普段でもよく使うような名詞)のみ入力し検索をかけるとけっこう上位に入ってしまう状態です。キャッシュは表示されていません。 なので、主要な検索サイトによる検索結果からのアクセスを拒否したいと考え、はじめて.htaccessを設置してみたのですが…設定やパーミッションなどはあっているはず(テストページでやってみたらきちんとエラーが出た)…なのですが、実際に入口(注意書き付き)index.htmlが置いてある一番上のルートディリクトリに.htaccessを置いてみたところ、機能していないようでした。 アドレスバーにurlを直接入力しても行けてしまいます。 どこか置く場所などが間違っているのでしょうか。 そもそも、.htaccessを置いて「検索結果一覧に表示された自サイトのurlリンクから飛ぶのを拒否する」ことは可能なのでしょうか?一度登録されてしまうと無理なのか…ちょっと解らなくなってしまいました。 サーバーはロリポップを使用しており、.htaccessは有効です。 ちなみに.htaccessファイルの内容は以下の通りです。 SetEnvIf REFERER "yahoo.co.jp/search" stop SetEnvIf REFERER "yahoo.com/search" stop SetEnvIf REFERER "excite.co.jp/search" stop SetEnvIf REFERER "infoseek.co.jp/OTitles" stop SetEnvIf User-Agent "Googlebot" stop SetEnvIf User-Agent "Slurp" stop SetEnvIf User-Agent "msnbot" stop Order Allow,Deny Allow from all Deny from env=stop 初心者でお恥ずかしい限りですが、教えて頂けると幸いです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • .htaccess 直リンク防止について

    自サイトのホームページで動画ファイル(wmv)に対する直リンクを防ぐために、.htaccessを設置したのですが、その結果自分のサイトからもエラーになってしまいます。記述内容は以下です。 <Files ~ "\.(gif|png|jpg|wmv)$"> SetEnvIf Referer "^http://www\.xxxxxx\.com" ShowOK SetEnvIf Referer "^$" ShowOK order deny,allow deny from all allow from env=ShowOK </Files> ------------------------ http://www\.xxxxxx\.com は自分のサイトURLです。 FTPでアップする時は、アスキーモードでアップしています。 属性変更では644に設定しています。 どこか間違っているのでしょうか?

  • .htaccess Refererによるアクセス制限で更新したときについて

    .htaccess Refererによるアクセス制限を以下のようにして行い特定のサイトからのアクセスを拒否するようにました。 SetEnvIf Referer "^http://www\.abc\.jp" ref_ng order allow,deny allow from all deny from env=ref_ng 普通にhttp://www\.abc\.jpからアクセスしたときはちゃんと拒否してくれるのですがページを更新したときIE7だと表示されてしまいます。 Firefoxは更新してもエラーを返してくれるのですが…。 IEでもFirefoxと同じように更新してもエラーを返すようにできませんでしょうか? ちなみに403を404として返すようにもしています ErrorDocument 403 /hoge.php http://questionbox.jp.msn.com/qa2628919.html?StatusCheck=ONを参考にしました。

  • AS2 PHPの変数をFLASHで表示するには

    AS2.0とPHP5です。 1.php <?php $a=100; $b=200; ?> 2.swf 上記をt1_txtとt2_txtの名前のダイナミックテキストに、それぞれ 100 200 とだけ表示したいのですが、どのように引っ張ればよいでしょうか。 xmlに書き出して引っ張ることなら出来ますが、間に挟むのは少ないほうが良いので、何とか表示させたいのですが。 調べてみるとLoadVars()で読み込んでと出てきたりしますが、 具体的な記述方法が分かりません。 ご存知の方いらっしゃいましたら、方法をご教授いただけませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Flash

専門家に質問してみよう