質問
PHPでWebサイトにアクセスしているユーザーを確認できますか。特定のWebサイトからのみアクセスできるユーザーを許可するWebアプリケーション(PHPで作成)があります。 _Request
オブジェクトを調べることで、紹介Webサイトを取得できますか?はいの場合、どのように?
解決
はい、ただし、いくつかのプロキシなどがこの情報を取り除いており、簡単に偽造できることに留意してください。絶対に頼らないでください。たとえば、Webアプリは CSRF から保護されているとは思わないご自身のサーバーに一致するリファラー。
$referringSite = はい、ただし、いくつかのプロキシなどがこの情報を取り除いており、簡単に偽造できることに留意してください。絶対に頼らないでください。たとえば、Webアプリは CSRF から保護されているとは思わないご自身のサーバーに一致するリファラー。
<*>
特定のドメインからのリクエストのみを許可する場合は、URLの一部を解析してトップレベルドメインを取得する必要があります。詳細を学んだように、これはPHPの parse_url()。
andyk がコメントで指摘しているように、www.example.comとサンプルも許可する必要があります。 com。
SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?
特定のドメインからのリクエストのみを許可する場合は、URLの一部を解析してトップレベルドメインを取得する必要があります。詳細を学んだように、これはPHPの parse_url()。
andyk がコメントで指摘しているように、www.example.comとサンプルも許可する必要があります。 com。
他のヒント
$ _ SERVER ['HTTP_REFERER']
を参照して参照サイトを取得できますが、ファームに賭けないでください。ブラウザはこのヘッダーを設定し、簡単になりすまします。
特定のリファラーからの訪問者のみがサイトを表示することが重要な場合は、この方法を使用しないでください。コンテンツを保護するには、基本認証などの別の方法を見つける必要があります。このテクニックを使うべきではないと言っているわけではありません。だまされないことを念頭に置いてください。
ところで、Apacheレベルでリファラーをブロックすることもできます mod_rewriteを使用。
リファラーを信頼できません。 $ _ SERVER
配列に由来しますが、実際にはユーザー/ブラウザが提供する値であり、Firefox RefControlアドオン。
「HTTP_REFERER」キーの$ _SERVER配列を調べる必要があります。