Я много искал, а также читал PHP $_ SERVER docs. Имею ли я это право относительно того, что использовать для моих PHP-скриптов для простых определений ссылок, используемых на моем сайте?
$_SERVER['SERVER_NAME']
основан на файле конфигурации вашего веб-сервера (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']
и почему вы не должны использовать его в атрибуте action формы без надлежащего экранирования для предотвращения атак XSS.
Мой вывод о моем первоначальном вопросе выше заключается в том, что "безопасно" использовать $_SERVER['HTTP_HOST']
для всех ссылок на сайте, не беспокоясь о атак XSS, даже если они используются в формах.
Пожалуйста, поправьте меня, если я ошибаюсь.