亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP $ _SERVER ['HTTP_HOST']與$ _SERVER

PHP $ _SERVER ['HTTP_HOST']與$ _SERVER

嗶嗶one 2019-08-30 16:17:16
我做了很多搜索,還閱讀了PHP $ _SERVER文檔。對于在我的網站中使用的簡單鏈接定義,我的PHP腳本使用哪個權限?$_SERVER['SERVER_NAME'] 是基于您的Web服務器的配置文件(在我的情況下是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(評論:Vladimir Kornea 14-Mar-2009 01:06)顯然,討論主要是關于$_SERVER['PHP_SELF']為什么你不應該在表單action屬性中使用它而沒有適當的轉義以防止XSS攻擊。我對上述原始問題的結論是$_SERVER['HTTP_HOST'],即使在表單中使用,也可以“安全”地使用網站上的所有鏈接,而不必擔心XSS攻擊。如果我錯了,請糾正我。
查看完整描述

3 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

只是另外一個注意事項 - 如果服務器在80以外的端口上運行(在開發/內聯網機器上可能是常見的),則HTTP_HOST包含端口,而不包含端口SERVER_NAME。


$_SERVER['HTTP_HOST'] == 'localhost:8080'

$_SERVER['SERVER_NAME'] == 'localhost'

(至少這是我在基于Apache端口的虛擬主機中注意到的)


正如邁克下面提到的,HTTP_HOST并沒有包含:443在HTTPS運行時(除非你是一個非標準端口,我沒有測試運行)。


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 1432 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號