
mail.swfファイルという外部ファイルがあったとして
WEBサイトのアドレスがhttp://www.*****.com/
だとします。
http://www.*****.com/の最後にmail.swfを
付け足して、
http://www.*****.com/mail.swfとしてアクセスされると
その外部ファイルに直リンクされてしまうと思うのですが
これを防ぐ方法はりますか?

No.3ベストアンサー
- 回答日時:
外部サーバのHTMLからの Flash のリンク貼り付けではなく,
リンクからの直アクセスだったのですね。
Flash 作成ソフトをお持ちでなければできないことですが,私は以下のように対処しています。
いつもこんなことをしているわけではありませんが,
事情があって,以下のようにした経験はあります。
Flash 作成ソフトをお持ちでなければすみません。以下は参考にはなりません。無視してください。
ある変数が整った時だけ,gotoAndPlay(); などをするようにしておけば良いと思います。
gotoAndPlay(); か何かはわかりません。
とにかくある変数にちゃんとした値が入ったときだけ,SWFファイルをマトモに動かせるようにすれば良いのです。
===方法1=================
まず,「mail.swf」の置き場所ですが,
http://www.*****.com/flash/mail.swf などHTMLとは違うフォルダ内に置きます。
flash でも何でも良いですが,HTMLとは違うフォルダ内に SWF を置きます。
それと,それを読み込む同じステージのサイズのSWFを作ります。
名前を「index.swf」としておきます。
そして,同じフォルダに置きます。
http://www.*****.com/flash/index.swf
「index.swf」ですが,
ステージの左上に小さなムービークリップを作って,
そのムービークリップにインスタンス名を付けます。
ここでは,インスタンス名を yomikomu_mc とでもしておきます。
そして,タイムラインの フレーム1 に,
------------------------------------
hensuu = "xyzabc";
_root.yomikomu_mc.loadMovie("flash/mail.swf");
------------------------------------
と書きます。
これで,mail.swf が yomikomu_mc に読み込まれます。
loadMovie("flash/mail.swf");
ですが,この flash/mail.swf は,HTML から見たときのパスになります。
次に「mail.swf」ですが,
フレーム1に以下のように書きます。
------------------------------------
stop();
if (_parent.hensuu == "xyzabc"){
gotoAndPlay(2);
} else {
stop();
}
------------------------------------
_parent(親) の 変数hensuu の値が "xyzabc" でない限り,再生しないということです。
これで,
http://www.*****.com/flash/mail.swf
に直アクセスされても,親(index.swf)が存在しないため,Flash は再生されません。
http://www.*****.com/flash/index.swf
に直アクセスされても,そこには,
loadMovie("flash/mail.swf");
と書かれてあるため,
http://www.*****.com/flash/flash/mail.swf
をロードしようとします。
そんなところには「mail.swf」は存在しないため何も表示されません。
これは,直アクセスだけでなく,外部からのリンク貼り付けでも有効です。
===方法2=================
これは,直アクセスの時のみ有効な手段です。
外部HTMLへなどのリンク貼り付けには有効ではありません。
FlashVars を使います。
http://www.macromedia.com/jp/support/flash/ts/do …
OBJECTタグ内に,
NAME=FlashVars VALUE="hensuu=xyzabc"
を付け加え,
EMBEDタグ内に,
FlashVars="hensuu=xyzabc"
を付け加えます。
そして,
次に「mail.swf」フレーム1に以下のように書きます。
------------------------------------
stop();
if (hensuu == "xyzabc"){
gotoAndPlay(2);
} else {
stop();
}
------------------------------------
変数hensuu の値が "xyzabc" でない限り,再生しないということです。
ひょっとしたら,フレーム1 では FlashVars によって変数がFlash内に届いていない可能性もありますから,
フレーム2 くらいに上のスクリプトを書く方が無難かもしれません。
直アクセスでは,再生されません。
リンク貼り付けでは,タグを真似されると貼り付けされてしまいます。
最初に書きましたが,方法1も2も Flash 作成ソフトを持っている場合の話です。
お持ちでなければ,ちょっとわかりません。
使ったことはないですが, .htaccess などでしょうかね。
sassakunさまありがとうございます。
こんな方法もあるのですね!ほんと勉強になります。
.htaccessは私のサーバーでは使えないようなので、sassakunさま
の方法1を試してみます。
本当にありがとうございました。
No.4
- 回答日時:
.htaccessを使って、拡張子.swfを含むファイルへのアクセスは
http://www.*****.com/をリファラに含まないとforbiddenを返すという設定にしとけばいいです。余談ですが、同様のパターンで、画像への直リンクやダウンロードファイルへの直リンクをはじくことができます。しかし、これにはひとつ問題点が ...
昨今のセキュリティソフトの中にはリファラを吐かないヤツがあるんです。それがどの程度の割合で無視できるレベル以下なのかどうか私は把握していません。
No.2
- 回答日時:
補足。
過去のQ&Aを検索してみたところ
http://www.yuzuriha.sakura.ne.jp/~akikan/kaigai/ …
と言うのがありました。
参考URL:http://www.yuzuriha.sakura.ne.jp/~akikan/kaigai/ …
この回答への補足
.htaccessというのは便利そうですね!
もう少し詳しく説明いたしますと、
index.htmlのenterを押すとポップアップでメインのFlashの
ページが読み込まれる感じなのですが、indexページで仮に
メインのSWFファイルにhttp://www.*****.com/main.swfのような
感じでアクセスされるのがなんか嫌でして。(このようなユーザー
は稀だと思いますが。)
No.1
- 回答日時:
自作CGIが設置出来れば可能です。
./cgi-bin/swfread.cgi
にCGIを設置し、htmlに記述する場合は、
http://www.*****.com/swfread.cgi?file=mail.swf
とします。
このCGIの中ではHTTP_REFERERが自サイト内を指しているか判定します。
自サイト内であれば、CGIで
「Content-Type: application/futuresplash」
「(空行)」
の2行をを出力した後、fileパラメータで指定されたファイル(swfファイル)の実体をcatコマンド等で標準出力へ出力します。
そうでない(HTTP_REFERERがない、HTTP_REFERERが空文字、自サイトでない)場合は
「Content-Type: text/html」
「(空行)」
「<HTML></HTML>」
の3行を出力します。
これで、自サイト内以外からリンクされたり、URLの直打ちを防止出来ます。
この回答への補足
ご教授ありがとうございます。
BBSやmailフォームのCGIはいじったことがあるのですが、
chie65536のおっしゃる方法はその程度の知識では難しい
ですよね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 画像ファイルの名前をそのままURLにする 3 2022/10/16 11:18
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- Gmail 家から自分のg-mailで添付ファイル付きのメールを4通、職場の自分宛てに送りました。次の日に見ると 3 2022/09/08 12:35
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- その他(クラウドサービス・オンラインストレージ) Onedriveで実現したい事。2台のPC間で。 2 2023/04/10 20:42
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- C言語・C++・C# ActiveXコントロールを.NETにインポートできない??? 2 2023/05/02 02:50
- C言語・C++・C# condaコマンドに対応したプロキシ設定が思うようにならないようです。 2 2022/04/11 17:15
- Windows 10 Corsair SSDが遅い (2)WDに比べて 3 2023/04/25 11:21
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLからフォルダを開きたい
-
iPadの標準ブラウザでローカルH...
-
社内で利用するWebサイトを立ち...
-
HTMLで別PCのフォルダを開く
-
カウンターがリセットされてし...
-
ホームページ作成の技について...
-
こんなhtmlタグを教えてください。
-
全てのページが同じレイアウト...
-
HP に BGM をつけたい...
-
htmlの中にexcelが埋め込むには...
-
HTMLで画像を表示させたいです
-
アップロード機能のお勉強。
-
VB6でHTMLファイルを起動するに...
-
htmlにtextファイルを表示させ...
-
JSPの中にhtmlファイルを埋め込...
-
SWFファイルに直リンクできなく...
-
メールに添付されたhtmlファイ...
-
Excelで、社外秘(閲覧のみ)と...
-
リンク先からリンク元の、同じ...
-
特定のページを開いたとき、小...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLからフォルダを開きたい
-
iPadの標準ブラウザでローカルH...
-
社内で利用するWebサイトを立ち...
-
htmlの中にexcelが埋め込むには...
-
HTMLで別PCのフォルダを開く
-
htmlの謎
-
メールに添付されたhtmlファイ...
-
JSPの中にhtmlファイルを埋め込...
-
テクトロ オシロ 拡張子 ISFフ...
-
Word文書の.docファイルをWeb上...
-
htmlにtextファイルを表示させ...
-
、URL化させるにはどうしたらい...
-
スマホサイト url SP
-
一つのhtmlファイルでページを...
-
input type="file"のmaxlength...
-
html からリンクされていないフ...
-
vbでhtmlファイルを作成するに...
-
お気に入りのエクスポートした ...
-
<a href=…></a>で表示されない。
-
ロボット検索でページを拾われ...
おすすめ情報