3

リクエストがイントラネットからのものであることを証明するために、認証としてhttp-refererを使用するオンラインリソースにサインアップしています(悪い考えですが、私は知っています)(より高いレベルのプロキシがあるため、IPアドレスは使用できません)。

残念ながら、彼らのシステムはドメインを取得するのではなく、特定のリファラーURLを必要とする可能性があります。これは、別のページからリソースにリンクする場合は、さらに別のURLを登録するか、スプラッシュページにリンクして再度クリックする必要があることを意味します。

このルートをたどる必要がある場合は、できるだけ目立たないようにしたいので、次のことを達成するための最善のアプローチは何かと考えていました。

  1. http://intranet/somerandomurlへのリンクがあります
  2. http://intranet/AuthorisedUrlこれはへのリファラーである必要があります
  3. http://externalsite/

文字通り人々にリンクをクリックさせることなくこれを行う方法はありますか?(ブラウザの大部分は、リンクをクリックする必要がある場合はIE6またはIE7になりますが、ほとんどの場合JSを使用できます)。

4

1 に答える 1

3

このコードをリンク 2 に配置します。JavaScript が有効になっている場合は、

 <script type="text/javascript">

window.location = "http://example.com/"

</script>

これにより、実行されるとすぐにhttp://example.com/にリダイレクトされます。<head>ページ読み込みのできるだけ早い段階でリダイレクトが発生するように、これを のできるだけ早い段階に配置します。

次に、JavaScript が無効になっているページに手動リンクを配置します。

いずれにせよ、リンク 2 は externalsite のリファラーになります。

(注意: これは本当に安全でない認証方法です。)


編集: 一部の IE バージョンではReferer、javascript リダイレクト後にヘッダーが渡されないという既知の問題があるようです。回避策は次のとおりです: http://webbugtrack.blogspot.com/2008/11/bug-421-ie-fails-to-pass-http-referer.html

于 2010-09-02T14:50:05.897 に答える