私は多くの検索を行い、PHP $_SERVER docsも読みました。サイト全体で使用される単純なリンク定義用の PHP スクリプトに使用するものに関して、私にはこの権利がありますか?
$_SERVER['SERVER_NAME']
Web サーバーの構成ファイル (私の場合は Apache2) に基づいており、(1) VirtualHost、(2) ServerName、(3) UseCanonicalName などのいくつかのディレクティブによって異なります。
$_SERVER['HTTP_HOST']
クライアントからのリクエストに基づいています。
したがって、スクリプトを可能な限り互換性のあるものにするために使用する適切なものは$_SERVER['HTTP_HOST']
. この仮定は正しいですか?
フォローアップ コメント:
$_SERVER
この記事を読んで、一部の人々が「どのvarsも信用しないだろう」と言ったことに気付いた後、私は少し偏執症になったと思います。
http://markjaquith.wordpress.com/2009/09/21/php-server-vars-not-safe-in-forms-or-links/
http://php.net/manual/en/reserved.variables.server.php#89567 (コメント: Vladimir Kornea 14-Mar-2009 01:06)
どうやら議論は主に$_SERVER['PHP_SELF']
、XSS攻撃を防ぐために適切にエスケープせずにフォームアクション属性でそれを使用すべきではない理由についてです。
上記の最初の質問に対する私の結論は$_SERVER['HTTP_HOST']
、フォームで使用されている場合でも、XSS 攻撃を心配することなく、サイト上のすべてのリンクに使用しても「安全」であるということです。
私が間違っている場合は、私を修正してください。