1. ホーム
  2. authentication

外部ソース(ExcelやWordなど...)からリンクをクリックすると、Cookieが認識されないのはなぜですか?

2023-08-17 13:27:25

質問

Excel や Word などの Web ブラウザから外部へのリンクをクリックした場合、そのリンクが同じブラウザ ウィンドウの新しいタブで開かれたとしても、セッション クッキーが最初に認識されないことに気づきました。

ブラウザは最終的にその Cookie を認識しますが、Excel や Word からのその最初のリンクがなぜ機能しないのか、困惑しています。さらに困難なことに、リンクをクリックすると、Outlook からは問題なく動作します。

なぜこのようなことが起こるのか、誰か知っていますか?私は PHP 5.3 で Zend Framework を使用しています。

どのように解決するのですか?

これは、MS Office が Hlink.dll コンポーネントを使用して、リンク先が Office ドキュメントかそれ以外かを調べているためです。MS Office は、外部ブラウザー (IE6 の Hlink.dll コンポーネント) の助けを借りずに、ドキュメント内にリンクされたドキュメントを開くことを期待しています。

セッション クッキーで保護されている場合、Hlink は当然ログイン ページにリダイレクトされ、HTML ページに到達して理解できない場合は、外部ブラウザで開きます。元の URL (予想される動作) ではなく、たとえ 302 リダイレクトであっても、リダイレクトの結果を開くことに注意してください。

Microsoft は、サポートされていないコンポーネント (Hlink.dll) にこのバグを持たせ、そのバグを認識する代わりに を使用して、そのバグを私たちの頭脳に引き渡しました。 (私たちが使用している SSO システム、つまりセッション Cookie の欠陥であると私たちを説得しようとしています) そしてアップグレードを拒否しています。それは ルックアップ機能をオフにする回避策 を提供しています。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
  Office\9.0\Common\Internet\ForceShellExecute:DWORD=1

または、HTTPリダイレクトを避け、JavascriptリダイレクトまたはMETA REFRESHリダイレクトに変更するために、サーバーサイドで回避するために私たちを提供します(すなわち、Hlinkが元のURLでテキスト/HTMLページを取得し、それを処理するために外部ブラウザを実行するようにします)。