2013-11-20 35 views
1
PHP會話安全存儲AUTH關鍵

比方說,一個網站使用Redis的(遠程)存儲會話數據,以及Redis的店是由一個auth鍵對Redis的

所以在php.ini保護,使用phpredis,它的設置是這樣的:

session.save_handler = redis 
session.save_path = "tcp://redis.example.com:6379?auth=[AUTH_STRING_HERE]" 

有沒有什麼辦法讓這個更安全一點?然後運行phpinfo()的服務器上的任何人;可以看到auth字符串...

回答

1

您可以使用ini_set方法通過php代碼設置此路徑。然後在代碼中從文件/字符串中選擇值,可以將其存儲爲加密字符串。

0

禁用的phpinfo,還嘗試建立其向auth串外部腳本或文件命令(它不太安全,更模糊,但它會移動的問題進一步向下行)

0

由於PHP 7,你可以傳遞一個選項數組到session_start()命令,例如

session_start([ 
    'save_handler' => 'redis', 
    'save_path' => 'tcp://redis.example.com:6379?auth='. $your_auth 
]); 

這樣,您就可以使用將敏感數據存儲在.env文件中的標準12因子應用最佳實踐。

對於前7 PHP版本,你應該能夠使用ini_set來覆蓋存儲在你的php.ini文件(一個或多個)值。