IE_PHP チュートリアルでのクロスドメイン PHP iframe によって引き起こされるセッション損失の問題の解決策
他のWebサイトによってログインページがiframeに埋め込まれると、ログインできなくなります(この状況はIEのみに存在します)。主な問題は、セッションを保存できないことです。以下に私個人の解決プロセスを共有します。
今日作成したログインページが別のWebサイトによってiframeに埋め込まれてしまい、ログインできなくなりました(IEのみで発生しました)。
当然、セッションは保存できません。しかし、アドレスバーでログインページを直接開くと、すべてが正常です。おかしいですね。
オンラインで検索しました。多くの人がこの問題について言及していることがわかりました。最後の解決策は、ログイン ページに次のコードを追加することです:
コードは以下のように表示されます。
リーリー
おそらくこの問題は、ログイン ページが JavaScript のロケーション ジャンプを使用していることにも関係していると思われます。しかし、詳細なテスト研究はありません。
詳しい読み方:
今日、Tencent Friends アプリケーションの作業をしていたときに、テスターから、アプリケーションが IE7 で使用できないという作業指示が届きました
。
最初の反応は、セッションが失われたということでした
。
そこで、IE7 の iframe セッション損失の問題をオンラインで検索したところ、次の記事を見つけて問題を解決しました。
昨日、キャンパス内で作成していたタイムダイアリーがついにオンラインになりました。リリース初日には 80 人を超えるユーザーがこのアプリをインストールしましたが、多くのユーザーがアプリを利用できないと報告しました。私はFirefoxで開発していました(学校関係者も復習にFirefoxを使っていたようです) IE7でテストしたところ、ホームページ以外のページが正常に開けませんでした。
インターネットで多くの情報を検索した結果、IE7 にはこのような問題があることがわかりました。ページ内に 1 つ以上の iframe サブページがある場合、サブページでのセッションの作成が成功しない可能性があるため、セッション データを作成できません。他のページと通信できます。学内や 51 のアプリケーションを開発する場合、iframe を使用することを前提とすると、このような問題に遭遇する可能性があります。そして、この問題は IE7 ブラウザーでのみ発生します。Firefox、IE6、Chrome ブラウザーでテストしましたが、問題はありませんでした。
解決策は、session_start を実行する前に、iframe サブページがセッションを作成するときに問題が発生しないように、ブラウザーにセキュリティ レベルを大まかに宣言する次の文をプログラム (PHP 言語を例として挙げます) に追加することです。
header('P3P: CP=”ALL ADM DEV PSAi COM OUR OTRo STP IND ONL”‘);
さらに、your_domain.yourhost.com のように、第 2 レベルのドメイン名にアンダースコアが含まれている場合、セッションの確立と送信時に問題が発生する可能性があることもわかりました。
いくつかの考え:
1) 何年も経った今でも、ブラウザの互換性の問題は完全に解決されておらず、IE ブラウザは依然として開発者に苦痛と苦痛を与えています。
2) アプリケーションをリリースする前に、厳密なブラウザ互換性テストを受ける必要があります。そうしないと、アプリケーションの最初のユーザーが失われる可能性があります。
その他の参考記事:
iframe での jsessionid の失敗によるセッション損失の問題を解決します
http://618119.com/archives/2007/12/19/48.html
ISMP2.1.1インターフェースを実装するにはSsoが必要ですが、ISMPで定義されているインターフェースではiframeなどの埋め込みページでssoインターフェースを呼び出す必要があることが実際に開発中に判明しました。
問題を再現するシナリオは次のとおりです:
1. まずサイトにアクセスします: http://192.168.18.2/test.jsp
test.jsp のコードは次のとおりです:
本文>
sso.jsp で渡された ssoinfo を読み取り、ISMP 認証インターフェイスを逆に呼び出します。
セッションを生成し、指定された属性値を設定します。 session .setAttribute("ssoUser","lizongbo"); その後、ページは http://192.168.18.3/iframe.jsp にリダイレクトされます
応答.sendRedirect(“/iframe.jsp”);
iframe.jsp でセッション中の ssoUser の属性値を読み込むと、読み込めないことがわかります。
2. 最初にページ 192.168.18.3 にアクセスし、次にページ 192.168.18.2 にアクセスすると、この時点で埋め込まれた iframe は生成された jsessionid Cookie を渡すことができます。
したがって、解決策は次のとおりです:
a. URL に jsessionid を追加します。
たとえば、response.sendRedirect(“/iframe.jsp;jsessionid =lizongbo”); にリダイレクトします。 この場合、iframe.jsp ページ内の他の接続の URL が jsessionid を追加しない場合、
セッションを渡し続けることも不可能ですが、クライアント側で各ハイパーコネクションの href 属性が js を通じて書き換えられ追加されます
。
b.sso.jspにP3Pヘッダー情報を設定する
例: P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”
または P3P:CP=”CAO PSA OUR”
Java コードは次のとおりです:
response.addHeader("P3P","/"CAO PSA OUR/"");

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









インラインフレームはHTMLではiframeと呼ばれます。ラベルは、ブラウザがスクロール バーや枠線を使用してさまざまなドキュメントを表示できる、コンテンツ内の長方形の領域を指定します。現在の HTML ドキュメント内に別のドキュメントを埋め込むには、インライン フレームを使用します。要素への参照は、HTMLiframe name 属性を使用して指定できます。 JavaScript では、要素への参照も name 属性を使用して行われます。 iframe は基本的に、現在表示されている Web ページ内に Web ページを表示するために使用されます。 iframe を含むドキュメントの URL は、「src」属性を使用して指定されます。構文 以下は HTML <iframesrc="URL"title="d の構文です。

iframe の読み込みが遅い原因には、主にネットワーク遅延、リソース読み込み時間の長さ、読み込み順序、キャッシュ メカニズム、セキュリティ ポリシーが含まれます。詳細な紹介: 1. ネットワーク遅延: ブラウザーが iframe を含む Web ページを読み込むとき、iframe 内のコンテンツを取得するためにサーバーにリクエストを送信する必要があります。ネットワーク遅延が大きい場合、コンテンツの取得に時間がかかります。 ; 2. リソースの読み込み時間が長い場合、リソースのサイズが大きい場合、またはサーバーの応答時間が長い場合、読み込み速度はより明らかに遅くなります; 3. 読み込みシーケンス、等

iframe の data-id は、特定の要素の識別子を格納するために HTML タグで使用されるカスタム属性を指します。 data-id 属性を使用すると、iframe 要素に一意の識別子を追加して、JavaScript で操作およびアクセスできるようにすることができます。 data-id 属性の命名は、特定のニーズに応じてカスタマイズできますが、一意性と読みやすさを確保するために、通常はいくつかの命名規則に従います。 data-id 属性を使用して、特定の iframe を識別および操作することもできます。

セッション障害は通常、セッションの有効期間の期限切れまたはサーバーのシャットダウンによって発生します。解決策: 1. セッションの有効期間を延長する; 2. 永続ストレージを使用する; 3. Cookie を使用する; 4. セッションを非同期的に更新する; 5. セッション管理ミドルウェアを使用する。

PHPSession のクロスドメイン問題の解決策 フロントエンドとバックエンドの分離の開発では、クロスドメイン要求が標準になっています。クロスドメインの問題に対処するときは、通常、セッションの使用と管理が必要になります。ただし、ブラウザーのオリジンポリシーの制限により、デフォルトではセッションをドメイン間で共有できません。この問題を解決するには、いくつかの技術と方法を使用して、セッションのクロスドメイン共有を実現する必要があります。 1. ドメイン間でセッションを共有するための Cookie の最も一般的な使用法

iframe の読み込みイベントには、onload イベント、onreadystatechange イベント、onbeforeunload イベント、onerror イベント、onabort イベントなどが含まれます。詳細説明: 1. onload イベント、iframe のロード後に実行される JavaScript コードを指定、2. onreadystatechange イベント、iframe の状態が変化したときに実行される JavaScript コードを指定、など。

Python の iframe は、Web ページに別の Web ページまたはドキュメントを埋め込むために使用される HTML タグです。 Python では、さまざまなライブラリとフレームワークを使用して iframe を処理および操作できます。その中で最も一般的に使用されるのは BeautifulSoup ライブラリで、Web ページから iframe のコンテンツを簡単に抽出して操作および処理できます。 iframe の処理方法を知ることは、Web 開発とデータ スクレイピングの両方に非常に役立ちます。

iframe の危険性は主に次のとおりです: 1. セキュリティの脆弱性: 悪意のある Web ページが iframe 経由で他の Web ページをロードし、攻撃を実行する可能性がある; 2. 同一オリジン ポリシーの突破: iframe で他のドメイン名で Web ページをロードすることにより、同じ -オリジンポリシーが侵害される可能性があるクロスドメイン通信を実現するための戦略(悪意のある攻撃を受ける可能性がある)、3. コード実行の問題、iframe にロードされた Web ページで JS コードが実行される可能性があり、セキュリティ上の問題が発生する可能性がある、4. SEO の問題、検索エンジンiframe などを介して読み込まれたコンテンツを正しく解析してインデックスを作成できない場合があります。
