PHP $ _SERVER ['HTTP_HOST'] против $ _SERVER ['SERVER_NAME'], правильно ли я понимаю справочные страницы?
Я много искал, а также читал PHPДокументы $ _SERVER, Имею ли я это право в отношении того, какие скрипты PHP использовать для простых определений ссылок, используемых на моем сайте?
$_SERVER['SERVER_NAME']
основан на файле конфигурации вашего веб-сервера (в моем случае Apache2) и варьируется в зависимости от нескольких директив: (1) VirtualHost, (2) ServerName, (3) UseCanonicalName и т. д.
$_SERVER['HTTP_HOST']
основан на запросе от клиента.
Поэтому мне кажется, что правильное использование, чтобы сделать мои сценарии максимально совместимыми,$_SERVER['HTTP_HOST']
, Это предположение верно?
Последующие комментарии:
Я думаю, что я стал немного параноиком после прочтения этой статьи и заметил, что некоторые люди сказали: «Они не будут доверять никому из$_SERVER
вары ":
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 (комментарий: Владимир Корнеа 14 марта 2009 г. 01:06)
Видимо, речь идет в основном о$_SERVER['PHP_SELF']
и почему вы не должны использовать его в атрибуте действия формы без надлежащего экранирования для предотвращения XSS-атак.
Мой вывод о моем первоначальном вопросе выше состоит в том, что это "безопасно" использовать$_SERVER['HTTP_HOST']
для всех ссылок на сайте, не беспокоясь о XSS-атаках, даже при использовании в формах.
Пожалуйста, поправьте меня, если я ошибаюсь.