可能重複:
PHP global in functions
使用這樣的事情讓我擔心:
<? global $config; ?>
比方說,我存放我的數據庫連接,我用在字符串中鹽我$ config global。
是否有機會通過現在使用:
<? global $config; ?>
我會有問題在未來?
如果是這樣,這怎麼可能被利用?
可能重複:
PHP global in functions
使用這樣的事情讓我擔心:
<? global $config; ?>
比方說,我存放我的數據庫連接,我用在字符串中鹽我$ config global。
是否有機會通過現在使用:
<? global $config; ?>
我會有問題在未來?
如果是這樣,這怎麼可能被利用?
簡短的回答是沒有。
global關鍵字只是簡單地使該變量可以訪問一個通常無法訪問它的函數。它不會讓外部腳本訪問它,這純粹是文件本身是否可訪問的問題。
是的理解。但讓我再次嘲弄這一點。全局$ config包含在我正在使用的函數中。 – 2012-01-13 23:50:55
沒關係。如果包含它們的文件是安全的,則應用程序內的代碼是安全的。黑客必須能夠實際讀取源文件(在這種情況下,他們可以只讀取文件中的密碼等)。他們無法訪問正在運行的腳本中的變量。 **總是存在SQL注入或其他類型安全缺陷的風險,但這些與全局關鍵字並不直接相關。 – 2012-01-13 23:52:39
如果攻擊者無法訪問包含敏感數據的文件,並且攻擊者無法在您的服務器上執行自己的代碼,則應該大體上可以。編輯:beaten – tangrs 2012-01-13 23:54:07
我會在將來遇到問題嗎?
如果是這樣,這怎麼可能被利用?
全局變量的問題不在於它們打開了一些魔法門,於是它們可以直接被利用。相反,全局變量往往會讓應用程序的設計更混亂,因爲它不清楚哪些函數/類/模塊依賴於它們。因此,維護起來更加困難。因此,它們具有較高的包含錯誤的可能性,這反過來可能導致迄今未知的安全缺陷。 Ergo,程序員對全局性表示不滿。
「迄今爲止這樣」? – 2012-01-13 23:46:10
很明顯,但我們正在談論一些反覆回收的變量。我的問題不是應用程序設計與應用程序安全有關。純粹從使用全局$ config的安全角度來看,是否有任何負面影響? – 2012-01-13 23:48:52
@DanKanze這是一個非常有效的答案。他直接告訴你「未來會遇到問題」(混亂的應用程序設計),並且通過使用全局的方式,它不會爲漏洞打開一扇「魔法門」。 – 2012-01-13 23:59:43
你爲什麼認爲它可以被利用? – 2012-01-13 23:39:50
另外,你是什麼意思「我用於弦的鹽」?哪些字符串? – 2012-01-13 23:42:03
攻擊者是否有可能獲得或使用全局$ config中的數據庫信息或salt來執行攻擊? – 2012-01-13 23:42:35