PHPでシステムを組んでいて、疑問を持ちました。
一番うれしい解決は、「正式なリファラー」を取得することです。
リファラーはブラウザから送信されるデータなのでそれ単体で正確性を保証することは不可能です。
リファラーが保証されるのは、企業内のクライアント等で設定がいじれないようになっているか自作のソフトウェアのみで通信を許可する場合などのみです。
なるほど。もともと対して当てにならないものナですね。
HTTPで通信をする場合、サーバ側(この場合php)とクライアント側(ブラウザなど)が通信を行うことになります。サーバ側が取得できる情報は、クライアントが送ってくるものだけです。サーバ側はクライアントの送ってくる情報を信じるしかありません。
「正式なリファラー」とは、偽装されない、ユーザがブラウザ上で実際に飛んできたページを取得したいという意味だと思いますが、
上記の通り、HTTP通信にはサーバとクライアントしかいませんので、クライアント側がリファラーを偽っている場合は、どうしようもありません。(サーバとクライアントの間にはプロキシーなどが挟まることがありますが、「本当の」リファラーを知りうるのはクライアントのみであるという点では同じです)
ただし、自分が管理しているドメイン内であれば、セッションIDを使うなどすればページの遷移は管理できる可能性があります。ただし、他者が管理しているドメインから飛んできた場合などは、リファラーしか信頼できるものがありませんのでどうしようもありません。
URLはダミー。
ありがとうございます。
ありがとうございます。