ロードされたページがiframe内にある場合、サーバーサイド(c#、asp.net mvc)を検出するにはどうすればよいですか?ありがとうページがiframe内にあるかどうかを検出する - serverside
答えて
これはできません。その後、
<iframe src="mypage?iframe=yes"></iframe>
とクエリ文字列は、IFRAME = yesの またはブラウザでお送りRefererヘッダとが含まれている場合、サーバー側を確認してください。
あなたは@ WTPの答えに対するあなたのコメントに記載されているように、 "安全"というあなたの要求に合うようにこれをチェックする方法はありません。
私はサーバー側でこれを行うことはできないと思うので、iframeに表示されるページに隠れたコントロールを入れないでください。 iframe内のURLが読み込まれると、クライアント側のコードを追加して非表示の入力を設定し、iframe内にあることを示すことができます。
// Set hidden input
someHiddenInput.value = self != top
それは、クエリ文字列よりも安全だが、それはまだあなたのために十分なセキュリティではないかもしれません:最も簡単なチェックはこのように、オンロード法では、クライアント側になります。
私の2セント。
は、フォーム内の次のコードを使用します。
<asp:HiddenField ID="hfIsInIframe" runat="server" />
<script type="text/javascript">
var isInIFrame = (self != top);
$('#<%= hfIsInIframe.ClientID %>').val(isInIFrame);
</script>
を、それがコードビハインドでiFrameのだならば、あなたは簡単に確認できます。
テスト済みbool bIsInIFrame = (hfIsInIframe.Value == "true");
と私のために働きました。
編集:上記のコードを実行するにはjQueryが必要です。
document.getElementById('<%= hfIsInIframe.ClientID %>').value = isInIFrame;
編集2:これだけ作品を、ページが一度ロードされたときにjQueryだけで隠しフィールドの値を設定するには、次の(未テスト)コードのようないくつかのコードを使用せずに、それを実行します。誰かがこれを改善するアイデアを持っているなら、私に知らせてください。私の場合は、幸いなことに、ポストバック後に値が必要なだけです。
これが答えになるはずです。 –
@RoyiNamir、これはサーバーサイドのソリューションではありません;) – tetri
@tetri、このコードではiframeにあるかどうかをサーバ側から確認できます。クライアントコードがあることに同意します。しかし、私の意見では、ページがどのように呼び出されるかを気にしないので、最良の解決策です。現在受け入れられている回答では、iframeごとにリクエスト値を設定する必要があります。これは忘れられる可能性があります。 – Undercover1989
- 1. スクリプトマネージャーがページにあるかどうかを検出するにはどうすればよいですか?
- 2. iFrame内のURLが変更されたかどうかを検出します
- 3. スマートフォンが範囲内にあるかどうかを検出する
- 4. ページがポストバックの結果であるかどうかを検出する方法
- 5. ページがPHPインクルードであるかどうかを検出できますか?
- 6. ページがIFrame内に表示されているというサーバー側の検出
- 7. QRコードリーダーアプリ内でWebページが開かれているかどうかを検出
- 8. タッチイベントがEditText内にあるかどうかを検出するにはどうすればよいですか?
- 9. 要素にフォーカスがあるかどうかを検出する
- 10. ページがGoogle Chrome用のIframeにあるかどうかを確認します
- 11. iFrameページが存在するかどうかを確認する
- 12. RichTextBoxが空であるかどうかを検出する
- 13. ディスクがフラッシュドライブであるかどうかを検出する
- 14. デバイスがiPhoneであるかどうかを検出する533
- 15. アンドロイドデバイスにSDカードスロットがあるかどうかをプログラムで検出
- 16. PopupWindowがScrollView上にあるかどうかを検出
- 17. スクリプトに既に権限があるかどうかの検出
- 18. コントロールがコントロールコレクション内に存在するかどうかを検出する
- 19. ユーザがPHPページでどのページを検出するか
- 20. IFRAMEのドキュメントが不正な形式であるかどうかを検出します。
- 21. ページがメモリ内にあるかどうかを確認しますか?
- 22. Symfony:コントローラーリクエストがサブリクエストであるかどうかを検出
- 23. ユーザーが私のページのファンであるかどうかを検出するには
- 24. ユーザーがPHPでページを残すかどうかを検出する方法
- 25. iframe内で子ページをクリックすると、ページをスクロールするにはどうすればよいですか?
- 26. ファイルがネットワーク上にあるかどうかを検出するにはどうすればよいですか?
- 27. UITapGestureRecognizer - スピードがタップ位置にあるかどうかを検出する(即時)
- 28. ビューが前面にあるかどうかを検出するリスナー?
- 29. コンパイル時に型がshared_ptrであるかどうかを検出する方法
- 30. Windows 8 Store Appにタッチスクリーンがあるかどうかを検出する
ありがとうございますが、iframe内でのみセキュリティ上の理由からページがアクセスされるようにしたいので、これは私の問題を解決しません。 querystringに何かを追加することは、安全のためにやるのが非常に簡単です。 – pistacchio
セキュリティ上の理由から、何か間違ったことをしています。せいぜい、iframe内にいることを手がかりにする唯一のことは、リファラーです。それは偽造品です。セキュリティは、アクセスチェックと検証によって行われ、脆弱な仮定のWebではありません。 – Yuliy