session生命周期

一、session生命周期

      如果客户端没有禁用cookie,cookie在启动session会话的时候扮演的是存储sessionID和session生存期的角色。我们来手工设置session的生存周期:

<!--方法一:直接用cookie设定-->
<?php
    session_start();
    $lifeTime = 24*3600;
    setcookie(session_name(),session_id(),time()+$lifeTime,"/");
?>
<!--方法二:php5提供函数-->
<?php
    $lifeTime = 24 * 3600;
    session_set_cookie_params($lifeTime);
    session_start();
?>
二、session基本用法:
<?php
session_start();
if(isset($_SESSION['view'])){
    $_SESSION['view'] = $_SESSION['view']+1;
}else{
    $_SESSION['view'] = 1;
}

    $view = $_SESSION['view'];// 最好先赋值再引用sesion变量
    echo "$view";

    unset($_SESSION['view']);
    session_unset($_SESSION['view']);//或者用phpsession_unset这类方法
    unset($_SESSION);//或者这类方法,全部删除
    session_destroy();

?>
三、防止session伪造
<?php
//session安全1
//泄露出的sesionID使得截获者能够伪造sessionID访问ID关联资源,第一url携带会话ID。如果连接到外部站点,包含会话IDurl会被存放在外部站点refer
//日志里。第二:较主动的攻击者会监听网段数据包,如果没有加密,会话ID会以明文方式在网络中流过。
//避免会话ID泄露,防止伪造的解决思路
if(!isset($_SESSION['user_session'])){
    $_SESSION['user_session'] = $_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'];
}elseif($_SESSION['user_session'] !=  $_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']){
    session_regenerate_id();
}

//方法二:会话数据放置一个标识变量,区分是合法还是伪造的
session_start();
if(!isset($_SESSION['is_create'])){
    session_regenerate_id();
    $_SESSION['is_create'] = TRUE;
}

?>

四、cookie用法
//第一:coolie用法
<?php
//创建cookie
$expire=time()+60*60*24*30;
setcookie("user","lisheng");
echo $_COOKIE["user"];
setcookie("user","lisheng",$expire);
//删除cookie
setcookie("name","",time()-3600);
?>
//第二:coolie数组用法

<?php

setcookie("cookie3[name]","lisheng",time()+3600);
setcookie("cookie3[age]","30",time()+3600);
setcookie("cookie3[sex]","man",time()+3600);
if(isset($_COOKIE['cookie3'])){
    foreach($_COOKIE['cookie3'] as $name=>$value){
        echo "$name:$value";
    }
}
?>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值