2010-12-23 72 views
1

由於我不是自己的原因,我正在使用運行在nginx上的應用程序,它將GET變量放入PHP的$ _SERVER全局中。

什麼情況是:

  1. 用戶登錄與Facebook連接

  2. Facebook的傳回用戶的會話作爲一個JSON編碼的GET變量回調PHP腳本

  3. 的在PHP腳本運行之前,nginx規則將GET變量放入$ _SERVER中

  4. PHP scri PT引用放置在$ _ SERVER變量,並用它使用戶登錄到該網站

儘管這是一般一個壞的解決方案,是寫用戶特定的運行數據到$ _ SERVER變量連安全在nginx上?當多個用戶登錄到網站時,它是否會產生任何併發問題?

回答

1

$_SERVER變量不在用戶之間共享。每個PHP實例都有自己的$_SERVER變量副本。它包含有關當前請求的數據,因爲這些數據是請求特定的。你可以毫無顧慮地寫下所有你想要的東西,但這樣做並不是一個好習慣(這樣做會損害性能,而且它也是非正統的)。
如果服務器只是簡單地設置環境變量,它出現在$_SERVER中,但這是可以接受的用法。只是不要從你的PHP腳本寫入它。

+0

感謝您的回答。你能否更詳細地解釋爲什麼會發生性能損失? – Simian 2010-12-23 01:58:41