0

明確にするために、このシナリオを想像してください。

  • ユーザーはsiteA.comにいます
  • ユーザーが私のサイトに向かうリンクをクリックします:siteB.com
  • 私のサイトは、リクエストを受け取ったときにsiteA.comのIPアドレスを特定したいので、このリクエストのためにサイトにリンクしたサーバーのIPを認識します。

PHPとApacheでこれを行う方法はありますか?そうでない場合、これを行う方法はありますか?

<?php

// Perhaps something like:
$linking_server_ip = $_SERVER[LINKING_SERVER_IP];

?>

編集:

したがって、$ _ SERVER ['HTTP_REFERER']は信頼できませんが、気軽に使用できます(リファラーが空でない場合は、期待されるエンドポイントからのものではないことを示す補足/機会情報です。聞こえますがプラグインのクライアントサイドがとにかく値を壊して、正当なリファラーが他のサーバーからのものであるように見えることを考えると、これだけでも信頼できないようです)。

私はまだこの問題を抱えています:

サーバーが自分のサイトの特定のページ(そのサーバーの証明書として機能する)を参照していることを確認する必要があります。

EG彼らのページにはcertificate.php?serverid=1234へのリンクがあります

彼らがシステムをだましておらず、他のサーバーでこの証明書を使用していないことを確認したいと思います(たとえば、siteAのsiteCの証明書を使用し、siteCで行われるはずのサービスの料金を支払わないようにします)。

siteA httpのサーバーが私のサーバー(siteB)にcertificate.phpで検証されるためにワンタイム使用トークンを取得するように要求するという大まかな解決策でも、他のサイトが毎回トークンを取得するためにsiteAを使用することができます検証をだましてsiteAの証明書を要求できるように、検証するトークンが必要です。

4

1 に答える 1

2

HTTPRefererヘッダー(そうです、それが綴り方です!)はこれを教えてくれます。PHPスクリプトでとして利用できます$_SERVER['HTTP_REFERER']

(ただし、すべてのブラウザがそれを提供し、なりすましが可能であるという保証はありません。セキュリティポリシーを適用するために使用しないでください。)

于 2013-03-04T19:13:31.173 に答える