5

かなり人気のある音楽小売業者で使用されるツールを作成しました。

このツールは強化された検索機能 (透過的な last.fm の結果、広告なし、不自由さ、気味の悪いものなし) を提供します。検索を表示する最も便利で目立たない方法は、悪意のある iframe を使用したツールバーです。これにより、ユーザーはユーザーのフォーカスを奪うことなく検索を読み込むことができます。

iframe が特に好きというわけではないので、「このフレームを閉じる」(Google 画像検索) リンクを追加して、ユーザーがブラウザーをすばやく簡単に制御できるようにするのは簡単なことだと思いました。

ただし、Googleとは異なり、iframe内のコンテンツの場所がわかりません(src経由で開始した場所のみ)。

だから今、私は XSS の世界とすべてのセキュリティ関連の懸念事項に自分自身を見つけました。

Javascript を使用して、親のリンクから呼び出される履歴オブジェクトに「戻る」ボタンと「進む」ボタンを追加しました (ユーザーが検索を行うと、結果が iframe に読み込まれるため、戻るボタンを使用するとプライマリに戻ることができます検索結果を使用/熟読した後のサイト)。

iframe 内の現在の場所を呼び出して、その場所にページ (現在はフレームなし) をリロードする方法はありますか?

PHP の $GLOBAL/$_SERVER 変数をチェックして、幸運に恵まれるかどうかを確認しました。セキュリティ上の懸念があることは理解していますが、この特定の関数が、親フレームに「通知」せずにブラウザ自体が呼び出しを行う history.back() とどう違うのかわかりません。

iframe 自体から src の場所を取得できることはわかっていますが、もちろん、それはユーザーがこのページを超えて移動しないことを前提としています。ユーザーが移動した場合、現在の場所を失い、最初に呼び出されたページにリダイレクトされることを気にしません。フレーム(...ああ...)。

フレームはウィンドウを盗むように設計されており、ユーザー セッションの整合性を適切に「解除」して維持する手段がないように思われます。

人々が彼らを嫌うのも不思議ではありません。:)

4

3 に答える 3

2

フレームを削除すると、元のフレームソースに戻ることで、現在提案されているように機能します。XSS の理由から、現在の場所を見つけることは不可能であるべきであり、可能であればバグと見なされ、その後のブラウザー パッチで修正されるため、そのような癖が存在する場合、それに依存するのは最善ではない可能性があります。ただし、場所を明らかにせずにエレガントにブレイクアウトする方法はいいでしょう. これは、 HTML5グループに提案できるものかもしれません。

于 2008-09-26T19:36:18.437 に答える
0

それほど役立つというわけではありませんが、最も近いのは、誰かが実際に元のフレーム ソース ページを離れたかどうかを検出することです。フレームをナビゲートすると、履歴オブジェクトがエントリを保持します。ページが読み込まれたときの元の履歴の長さが、誰かが「このフレームから抜け出す...」をクリックしたときの履歴の長さよりも大きい場合、フレーム内で閲覧していたことがわかります。 .

于 2008-09-27T01:56:44.153 に答える
0

あなた (hal10001) と Zach が時間を割いて回答してくれたことに感謝します。xss のセキュリティ上の懸念から、私は (私が疑ったように) 気が進まないようです。

すべてのコンテンツを php ベースのプロキシ内に単純にラップすることもできると思いますが、それは明らかに気味が悪いゾーンに入るでしょう。遅延の増加などは言うまでもありません。

正気で使いやすいものに出くわした場合に備えて、アイデアを回転させ続けますが、それまでは、元のフレームを宣伝して現在の場所を一掃するという、やや友好的でないアプローチを使用するだけだと思います(そうでない場合) iframe/ツールバーの状況を再訪できるように。

再度、感謝します!

于 2008-09-27T15:11:19.470 に答える