摘要:默認(rèn)依賴(lài)于默認(rèn)通過(guò)文件系統(tǒng),存儲(chǔ)于服務(wù)端,其實(shí)也就是一個(gè)一個(gè)的文件雖說(shuō)存儲(chǔ)于服務(wù)端,但是依舊要通過(guò)客戶端來(lái)告知服務(wù)端的是哪一個(gè)文件,文件名如下圖,而這個(gè)告知方式,就是,我們可以看到在使用的時(shí)候,里面會(huì)有一個(gè)這個(gè)名如下圖那么這個(gè)的作用是什么呢
1, SESSION 默認(rèn)依賴(lài)于 COOIKE
默認(rèn)通過(guò)文件系統(tǒng),存儲(chǔ)于服務(wù)端,其實(shí)也就是一個(gè)一個(gè)的sess文件 雖說(shuō)存儲(chǔ)于服務(wù)端,但是依舊要通過(guò)客戶端來(lái)告知 服務(wù)端的SESSION 是哪一個(gè)文件,文件名如下圖,
而這個(gè)告知方式,就是COOKIE,
我們可以看到在使用session的時(shí)候,COOKIE里面會(huì)有一個(gè)PHPSESSID這個(gè)cookie名,如下圖
那么這個(gè)id的作用是什么呢? 這個(gè)id其實(shí)就是sessionid,用于區(qū)分多個(gè)session的依賴(lài),也就是說(shuō),如果我們改掉PHPSESSID的值,如果夠碰巧,我們就能夠盜用其他人的SESSION信息了
我們可以看到,其實(shí)這2個(gè)session名稱(chēng)其實(shí)是對(duì)應(yīng)起來(lái)的
那么文件里面的內(nèi)容是什么呢?
可以看到,文件里面的內(nèi)容其實(shí)就是序列化以后的數(shù)組
那么如何改掉 PHPSESSID 這個(gè)名字呢???可以在php.ini里面改掉它,如果要更安全,可以改掉它的名字
那么如何自定義PHPSESSID的值呢????、可以使用
session_id() 函數(shù),如:
以上是默認(rèn)session的工作原理,存儲(chǔ)于服務(wù)器上面的文件中,
那么如果數(shù)據(jù)量過(guò)大,存儲(chǔ)于文件,會(huì)有磁盤(pán)的io瓶頸,畢竟是讀取硬盤(pán)。
答案是:肯定有,修改php.ini配置,使用memcache,來(lái)存儲(chǔ)session
session.save_handler = memcache //設(shè)置session的儲(chǔ)存方式為memcache memcache.hash_strategy = "consistent"http://設(shè)置memcache的hash算法 session.save_path = "tcp://127.0.0.100:11211" //設(shè)置session儲(chǔ)存的位置,多臺(tái)memcache用逗號(hào)隔開(kāi),例如:tcp://127.0.0.1:11211,tcp://127.0.0.1:12000
如:
//測(cè)試session讀取是否正常 session_start(); $_SESSION["username"] = "i am session"; echo session_id(); //從Memcache中讀取session $m = new Memcache(); $m->connect("localhost", 11211); //或者這樣 //$mem->addServer("127.0.0.1", 11211) or die ("Can"t add Memcache server 127.0.0.1:12000"); //根據(jù)session_id獲取數(shù)據(jù) //本機(jī) //$session = $m->get(session_id()); //session_id:d527b6f983bd5e941f9fff318a31206b //另一臺(tái)服務(wù)器,已知session id $session = $m->get("d527b6f983bd5e941f9fff318a31206b"); echo $session."
"; //會(huì)得到這樣的數(shù)據(jù):username|s:16:"pandao";,解析一下就可以得到相應(yīng)的值了 echo session_id()."
"; exit;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21494.html
摘要:需要修改以下三個(gè)地方修改安裝擴(kuò)展修改的如果是也有需要修改相關(guān)的配置配置文件影響配置項(xiàng)有要將保存到,,必須要配置的。配置完以后,可能不生效。通過(guò)會(huì)看到配置里有兩個(gè)值,,。受配置文件配置影響受的影響。它們的配置優(yōu)先級(jí)比高,會(huì)覆蓋中的配置。 需要修改以下三個(gè)地方:1、修改php.ini2、安裝phpredis擴(kuò)展3、修改apache的php.conf4、如果是php-fpm也有需要修改相關(guān)的...
摘要:主要被用于保存某個(gè)訪問(wèn)者的數(shù)據(jù)。服務(wù)器給訪問(wèn)者唯一的鑰匙,這個(gè)鑰匙被稱(chēng)作。例如官方給出的方案對(duì)于大量使用或者并發(fā)請(qǐng)求的網(wǎng)站而言,這可能是一個(gè)嚴(yán)重的問(wèn)題。例如意味著在每個(gè)請(qǐng)求中有的概率啟動(dòng)進(jìn)程。因此對(duì)于不能跟蹤的文件系統(tǒng)也沒(méi)問(wèn)題了。 什么是 Session 在 web 應(yīng)用開(kāi)發(fā)中,Session 被稱(chēng)為會(huì)話。主要被用于保存某個(gè)訪問(wèn)者的數(shù)據(jù)。 由于 HTTP 無(wú)狀態(tài)的特點(diǎn),服務(wù)端是不會(huì)記...
摘要:服務(wù)器給訪問(wèn)者唯一的鑰匙,這個(gè)鑰匙被稱(chēng)作。與合起來(lái)用來(lái)管理垃圾回收進(jìn)程啟動(dòng)的概率。例如意味著在每個(gè)請(qǐng)求中有的概率啟動(dòng)進(jìn)程。值為表示直到關(guān)閉瀏覽器。過(guò)期時(shí)間設(shè)置為秒啟動(dòng)概率設(shè)置為 什么是 Session 在 web 應(yīng)用開(kāi)發(fā)中,Session 被稱(chēng)為會(huì)話。主要被用于保存某個(gè)訪問(wèn)者的數(shù)據(jù)。由于 HTTP 無(wú)狀態(tài)的特點(diǎn),服務(wù)端是不會(huì)記住客戶端的,對(duì)服務(wù)端來(lái)說(shuō),每一個(gè)請(qǐng)求都是全新的。既然如此,...
摘要:文章轉(zhuǎn)自介紹這個(gè)頁(yè)面的目的是為了幫助那些配置和運(yùn)行它的服務(wù)器的人確保它的安全性。下面你將找到有關(guān)文件的正確配置信息。最后,查看文檔以獲得關(guān)于配置文件中每個(gè)值的參考。 showImg(https://segmentfault.com/img/remote/1460000018821916?w=1520&h=550); 文章轉(zhuǎn)自:https://learnku.com/php/t/2697...
摘要:一下大多是網(wǎng)上的資料,自己只是整理了下,如果有錯(cuò)誤希望能指出,感謝中的相關(guān)配置先看下中的相關(guān)配置的解釋。啟用此設(shè)定可以防止有關(guān)通過(guò)傳遞會(huì)話的攻擊。值為表示直到關(guān)閉瀏覽器。例如意味著在每個(gè)請(qǐng)求中有的概率啟動(dòng)進(jìn)程。 對(duì)于session的了解,之前一直沒(méi)有仔細(xì)研究過(guò),最近遇到了一些問(wèn)題,需要解決session配置問(wèn)題,就順便查看了些資料。一下大多是網(wǎng)上的資料,自己只是整理了下,如果有錯(cuò)誤希望...
閱讀 2839·2023-04-25 20:06
閱讀 1454·2021-08-26 14:15
閱讀 2244·2021-08-12 13:27
閱讀 1782·2019-08-30 15:55
閱讀 3480·2019-08-30 13:20
閱讀 2836·2019-08-29 15:12
閱讀 3340·2019-08-29 15:06
閱讀 2871·2019-08-29 14:13