成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

php中session的相關(guān)設(shè)置描述

jsdt / 2234人閱讀

摘要:一下大多是網(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ò)誤希望能指出,感謝!

PHP中session的相關(guān)配置

先看下php.ini中session的相關(guān)配置的解釋。使用 php -i|grep "php.ini" 找到php.ini的文件目錄位置,下面是php.ini配置內(nèi)容。參考官網(wǎng):SESSION配置

[Session]
; 定義了來(lái)存儲(chǔ)和獲取與會(huì)話關(guān)聯(lián)的數(shù)據(jù)的處理器的名字。默認(rèn)為 files
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
; 也可以將session存入到redis,對(duì)應(yīng)的key:PHPREDIS_SESSION:d7sq31qsvtcpsl6khacn068dg3
; session.save_handler = redis
 session.save_handler = files

; session.save_path 定義了傳遞給存儲(chǔ)處理器的參數(shù)。如果選擇了默認(rèn)的 files 文件處理器,則此值是創(chuàng)建文件的路徑。默認(rèn)為 /tmp
; redis對(duì)應(yīng)的設(shè)置
; session.save_path = "tcp://127.0.0.1:6379?auth=123456"    
session.save_path = "/tmp"

; session.use_cookies 指定是否在客戶(hù)端用 cookie 來(lái)存放會(huì)話 ID。默認(rèn)為 1(啟用)。
; 如果為1的話,就可以在瀏覽器的Cookies中看到本次會(huì)話的sessionid
session.use_cookies = 1

可以以chrome為例:

;指定是否在客戶(hù)端僅僅使用 cookie 來(lái)存放會(huì)話 ID。。啟用此設(shè)定可以防止有關(guān)通過(guò) URL 傳遞會(huì)話 ID 的攻擊。此設(shè)定是 PHP 4.3.0 添加的。自PHP 5.3.0開(kāi)始,默認(rèn)值改為1(啟用)
session.use_only_cookies = 1

; Name of the session (used as cookie name).
; session.name 指定會(huì)話名以用做 cookie 的名字。只能由字母數(shù)字組成,默認(rèn)為 PHPSESSID,對(duì)應(yīng)session_name()
session.name = PHPSESSID

; Initialize session on request startup.
; session.auto_start 指定會(huì)話模塊是否在請(qǐng)求開(kāi)始時(shí)自動(dòng)啟動(dòng)一個(gè)會(huì)話。默認(rèn)為 0(不啟動(dòng))
session.auto_start = 0

; session.cookie_lifetime 以秒數(shù)指定了發(fā)送到瀏覽器的 cookie 的生命周期。值為 0 表示“直到關(guān)閉瀏覽器”。默認(rèn)為 0
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; session.gc_probability 與 session.gc_divisor 合起來(lái)用來(lái)管理 gc(garbage collection 垃圾回收)進(jìn)程啟動(dòng)的概率。默認(rèn)為 1
session.gc_probability = 1

; session.gc_divisor 與 session.gc_probability 合起來(lái)定義了在每個(gè)會(huì)話初始化時(shí)啟動(dòng) gc(garbage collection 垃圾回收)進(jìn)程的概率。此概率用 gc_probability/gc_divisor 計(jì)算得來(lái)。例如 1/100 意味著在每個(gè)請(qǐng)求中有 1% 的概率啟動(dòng) gc 進(jìn)程。session.gc_divisor 默認(rèn)為 100。
session.gc_divisor = 1000

; session.gc_maxlifetime 指定過(guò)了多少秒之后數(shù)據(jù)就會(huì)被視為“垃圾”并被清除。 垃圾搜集可能會(huì)在 session 啟動(dòng)的時(shí)候開(kāi)始( 取決于session.gc_probability 和 session.gc_divisor)
; After this number of seconds, stored data will be seen as "garbage" and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 3600
; 指定是否啟用透明 SID 支持。默認(rèn)為 0(禁用),比如可以使用url傳遞如果設(shè)置為1
session.use_trans_sid = 0
session的生命周期

參考這兩篇文章:
如何設(shè)置一個(gè)嚴(yán)格30分鐘過(guò)期的Session
php會(huì)話(session)生命周期概念介紹及設(shè)置更改和回收
session是由服務(wù)端創(chuàng)建的,php程序中如果php.ini中沒(méi)有配置session.auto_start = 1的話,那么只有使用了session_start才會(huì)創(chuàng)建。
session_start() 會(huì)創(chuàng)建新會(huì)話或者重用現(xiàn)有會(huì)話。 如果通過(guò) GET 或者 POST 方式,或者使用 cookie 提交了會(huì)話 ID, 則會(huì)重用現(xiàn)有會(huì)話。當(dāng)會(huì)話自動(dòng)開(kāi)始或者通過(guò) session_start() 手動(dòng)開(kāi)始的時(shí)候, PHP 內(nèi)部會(huì)調(diào)用會(huì)話管理器的 open 和 read 回調(diào)函數(shù)。 會(huì)話管理器可能是 PHP 默認(rèn)的, 也可能是擴(kuò)展提供的(SQLite 或者 Memcached 擴(kuò)展), 也可能是通過(guò) session_set_save_handler() 設(shè)定的用戶(hù)自定義會(huì)話管理器。 通過(guò) read 回調(diào)函數(shù)返回的現(xiàn)有會(huì)話數(shù)據(jù)(使用特殊的序列化格式存儲(chǔ)), PHP 會(huì)自動(dòng)反序列化數(shù)據(jù)并且填充 $_SESSION 超級(jí)全局變量

嚴(yán)格控制30分鐘過(guò)期的Session

class Session{
        /**
         * 設(shè)置session
         * @param [type]  $name   [description]
         * @param [type]  $data   [description]
         * @param integer $expire [description]
         */
        public function set($name,$data,$expire = 300){
            $sessionData = [];
            $sessionData["data"] = $data;
            $sessionData["expire"] = time() + $expire;
            $_SESSION[$name] = $sessionData;
        }

        /**
         * 獲取session
         * @param  [type] $name [description]
         * @return [type]       [description]
         */
        public function get($name){
            if(!isset($_SESSION[$name])){
                return false;
            }

            if($_SESSION[$name]["expire"]>time()){
                return $_SESSION[$name]["data"];
            }else{
                self::clear($name);
            }

            return false;
        }

        /**
         * 清除session
         * @param  [type] $name [description]
         * @return [type]       [description]
         */
        private static function clear($name){
            if(isset($_SESSION[$name])){
                unset($_SESSION[$name]);
            }    
        }
}
session的作用

(1)最常用的可能就是存放用戶(hù)的登錄信息了
(2)還有上面鳥(niǎo)哥說(shuō)的存放優(yōu)惠券等等

需要注意問(wèn)題

(1)千萬(wàn)不要在服務(wù)端使用setcookie()存放數(shù)據(jù),這樣很不安全

(2)session.auto_start = 0最好還是使用0,如果是提供api服務(wù)的話,會(huì)生成很多session,占用資源

擴(kuò)展知識(shí)

session一致性架構(gòu)設(shè)計(jì)分布式session存儲(chǔ)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/23025.html

相關(guān)文章

  • PHP學(xué)習(xí)記錄(session與cookie)

    摘要:為應(yīng)用程序啟用會(huì)話狀態(tài)時(shí),將檢查應(yīng)用程序中每個(gè)頁(yè)面請(qǐng)求是否有瀏覽器發(fā)送的值。如果未提供任何值,則將啟動(dòng)一個(gè)新會(huì)話,并將該會(huì)話的值隨響應(yīng)一起發(fā)送到瀏覽器。 session 什么是session? session在計(jì)算機(jī)中,尤其在網(wǎng)絡(luò)應(yīng)用中,稱(chēng)為會(huì)話控制;具體到web中的session指的就是用戶(hù)在瀏覽某個(gè)網(wǎng)站時(shí),從進(jìn)入網(wǎng)站到瀏覽器關(guān)閉所經(jīng)過(guò)的這段時(shí)間,也就是用戶(hù)瀏這個(gè)網(wǎng)站所花費(fèi)的時(shí)間。...

    silenceboy 評(píng)論0 收藏0
  • 如何設(shè)置一個(gè)嚴(yán)格30分鐘過(guò)期Session

    第一種回答 那么, 最常見(jiàn)的一種回答是: 設(shè)置Session的過(guò)期時(shí)間, 也就是session.gc_maxlifetime, 這種回答是不正確的, 原因如下: 首先, 這個(gè)PHP是用一定的概率來(lái)運(yùn)行session的gc的, 也就是session.gc_probability和session.gc_divisor(介紹參看 深入理解PHP原理之Session Gc的一個(gè)小概率Notice), 這...

    馬永翠 評(píng)論0 收藏0
  • POSIX函數(shù)

    摘要:警告通過(guò)函數(shù),可以檢索很多敏感數(shù)據(jù),例如以及其它函數(shù)。當(dāng)開(kāi)啟了安全模式,函數(shù)并不會(huì)執(zhí)行任何的權(quán)限檢測(cè)。返回當(dāng)前進(jìn)程所在的當(dāng)前控制終端的路徑名返回值成功時(shí),返回路徑名。返回值返回一個(gè)關(guān)聯(lián)數(shù)組,下標(biāo)為定義的各種限制。 POSIX: 簡(jiǎn)介: 該模塊包含了定義在 IEEE 1003.1(POSIX.1)標(biāo)準(zhǔn)文檔里的函數(shù)的接口,通過(guò)其它手段無(wú)法訪問(wèn)。 警告:通過(guò)POSIX函數(shù),可以檢索很多敏感...

    diabloneo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<