2014-10-03 149 views
0

我正在設計一個小型網站,它可以查詢SQL數據庫系統,而不使用任何CMS。使用global $PASSWORD存儲SQL身份驗證參數的最安全方式似乎非常不安全(例如,像shellshock一樣的安全漏洞)。使用define("PASSWORD","password")更安全嗎?PHP中的全局常量:使用全局變量還是定義變量更安全?爲什麼?

這是第二種方法更安全,如果一個如果我使用這些方法之一寫入

define("SOMEOBFUSCATEDANDVERYLONGCONSTANTNAME","password"); 

,是值得加密"password",並與其他方法傳遞地穴參數?任何解釋和建議歡迎!

+2

爲什麼會'$ password'比'define()'更不安全? – Azrael 2014-10-03 08:03:09

+0

如果黑客能夠爲密碼讀取內存,則您的問題比您的PHP運行時未加密數據庫密碼的事實更大。 – h2ooooooo 2014-10-03 08:05:21

+1

這個問題是不合邏輯的。在全局範圍中定義的全局變量或常量具有完全相同的範圍 - 全局範圍。爲什麼您需要爲全局SQL訪問密碼變量? – Repox 2014-10-03 08:05:23

回答

0

使用全局或定義更安全嗎?爲什麼?

根據我的答案是否定的,因爲它從一個局部範圍到全局範圍。當我們調用函數時,我們應該需要在外面回覆任何內容。

的第二件事情是,使用全局裝置的功能是dependend其他scope..This可以胡來的事情了

請看看here進行了詳細的解釋

+0

感謝您的評論和鏈接。我儘可能少地使用全局變量。但是PHP定義了一些像'$ SERVER','$ _GLOBALS','$ _POST','$ _GET'等的全局變量,所以看起來它們不能完全避免。除了這句話,你的答案似乎與@ Repox對我關於範圍的問題的評論相矛盾。 – 2014-10-03 11:08:06

+0

@ V.Rossetto請接受答案,如果它幫助..Thanx .. :) – 2014-10-03 13:26:46