5

httpsを使用して表示された2つのWebページを想像してください。それらは異なるドメインに存在します。

私のページに到着した誰かが別の(特定の)ドメインにあるハイパーリンクを経由して来たことを(合理的に)確認するにはどうすればよいですか?そのドメインからのトラフィックのみを許可したい。これを達成するための最良の方法に関するアイデアをいただければ幸いです。

HTTP_REFERERを見てみましたが、この場合は送信されていないようです。HTTP RFCがhttps->httpからリファラー情報を送信しないことを指定していることを知っていますが、これはドメイン間またはssl証明書全体のhttps-> httpsにも適用されますか?

重要な場合、私のドメインはASP.NETで実行されます。ソースドメインを制御できません。

ありがとうございました。

4

3 に答える 3

6

mjv の応答の詳細: HMAC ( RFC 2104 ) を URL に入れる必要があります。2 つのサーバー間で秘密を共有し、元のサーバーに /timestamp/hmac/path の形式のリンクを生成させます。hmac は、hmac(キー、タイムスタンプ + パス) から検証する必要があります。これにより、異なるイメージが異なる hmac を生成します。次に、ターゲット サーバーは、タイムスタンプがリダイレクトから発生するのに十分なほど若いかどうかを判断できます。

クライアントの IP アドレスを hmac に入れて、URL を受信した同じクライアントもそれを解決することを要求することで、さらに制限することができます。ただし、http のみを処理して https を処理しない HTTP プロキシが存在する場合、またはその逆の場合、エラーが発生しやすくなる可能性があります。

于 2009-09-07T22:51:05.773 に答える
5

RFC で http_referer の送信が許可されているかどうかに関係なく、多くの Web クライアントおよび/またはサーバーとの間のプロキシまたはその他のプライバシー関連のゲートウェイが、ヘッダーの http_referer を削除またはスプーフィングし、ほとんどの http_referer をレンダリングすることがわかります。ベースの「認証」スキームは、せいぜい部分的にしか機能しません。

最初の https サーバーの管理者と協力している場合は、サーバーへの要求で time+something_else ベースのハッシュ コードを渡すことに同意するかもしれません。あなたの側でハッシュコードを確認することにより、あなたの https 訪問者が [ごく最近] 他のサーバーから来たことを知ることができます。

于 2009-09-07T20:43:08.927 に答える
0

参照元サイトを制御できない場合は、運が悪いです。

可能であればリファラーをスニッフィングし、それが存在しない場合は、「ここをクリックしてサイト A に移動すると、ここに戻ることができます」というランディング ページが表示されます。

さらに、「安全な」サイトにアクセスするためのより堅牢な方法に時間を費やしてください。

于 2009-09-07T23:20:56.230 に答える