
No.2ベストアンサー
- 回答日時:
$_SERVER["HTTP_REFERER"]に参照元が設定されているので
設定されていない、もしくは想定されていない参照元であった場合
エラー画面に飛ばすようにしてみたらどうでしょうか?
ただし、単純にブラウザにアドレスを入れて表示とかなら防げますが
参照元は偽装可能ですので厳密に他からアクセスをさせないなどという場合には向いてません。
なるほど!
リファラーがインラインフレームを開いているURLか見ればいいんですね!
たしかに、偽装されたら…
って思いましたけど、この回答でいいアイディアが浮かびました!
インラインフレームで読むURLにGETパラメータを添加してるんですが
そこには書かずにリファラーのURL内からスプリットしてパラメータを取ろうと思います。
リファラーとパラメータの照合
これでだいぶマシになりそうです!
No.3
- 回答日時:
srcで指定するときに適当なパラメーターを渡して
<iframe src="hoge.html?frame=true"></iframe>
呼び出されるページ内でそのパラメーターが受け取れるかテストする
○JavaScript
location.search.match("frame=true")
location.search.indexOf("frame=true")
○PHP
isset($_GET["frame"]) && $_GET["frame"]==true
パラメーターを直接入力されたら判別できないですが、
表向きは何も出ないので割と有効なんじゃないかと思います。
ありがとうございます!
この方法は、僕も最初に考え実装していました。
しかし、この方法だとフレーム内で右クリック→プロパティを見る事で
パラメーター付きURLがフルで表示されてしまって…
しかし、2番目の方の回答を参考に
リファラーのURLからスプリットしてパラメーターを取る方式に変えました。
すると、フレームで指定するURLにはパラメーターを付けなくてよいので
当然、プロパティで表示されるURLはパラメーター無しのURLになります。
回答を参考に、現状は下記の対策を実装しました。
1、リファラーが取れたかのチェック
2、リファラーのURLが指定ドメインを含んでいるかチェック
3、リファラーをスプリットしてパラメーター類を取得し照合
そして、1番目の方のJavaScriptを+α
といった感じで、NGの場合はTOPにリダイレクトさせました。
これで、前よりはだいぶマシになりました!
知識がある人には突破されてしまうの難点ですが…
No.1
- 回答日時:
>直接ブラウザからアクセスされた場合はエラー
第一にiframeが必須という時点でどうかと思いますが
PHPで判断することはかなり難しいのでjavascriptなどでやるしかないかも
(まあ回避策はいくらでもあるのですが)
iframeで呼び出すソースにこんな風に書いておく・・・
<script>
if(window==top.window) location.href="トップページ";
</script>
セッションやクッキーをからめればできないこともないかもしれませんが
メリットがほとんどない処理なので、あまりお勧めしません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セッション関数を使わずにファ...
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
SplFileObject を利用したとき...
-
composerをインストールしたい...
-
php でqiitaのサイトにあったフ...
-
【初心者】XAMPPのapacheの(恐...
-
PHPの勉強してます。 配列のと...
-
複数のパソコンの中の1つのパソ...
-
phpに関わる所での、form actio...
-
PHP8を使うと、大量のWarningが...
-
Q&Aサイトを作成していてURLの...
-
PHPで画像の渡しが上手く行きま...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
[php初心者]サイトを見てデータ...
-
入力フォームの空白や改行を制...
-
reuterの記事をbeautiful.soup....
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
composerをインストールしたい...
-
BASIC認証のフォームをデザイン...
-
SplFileObject を利用したとき...
-
phpでcookieがうまく保存されない
-
PHPのセッション有効期限について
-
PHPで画像の渡しが上手く行きま...
-
PHP8を使うと、大量のWarningが...
-
フォームで戻った際に入力済み...
-
Q&Aサイトを作成していてURLの...
-
PHPを使って、別サイトの一部を...
-
$_SESSIONに渡した後はそのまま...
-
reuterの記事をbeautiful.soup....
-
PHPSpreadsheetを使って関数を...
-
PHPのエラーの解消法について教...
-
ファイルの遷移がうまく行われ...
-
PostgreSQLからCSV形式でエクス...
-
php エラー
-
HTML PHP ラジオボタンのイベント
おすすめ情報