recherche
Maisonphp教程PHP源码php session 使用与安全

<script>ec(2);</script>

session基本用法实例
复制代码 代码如下:
// page1.php
session_start();
echo'Welcome to page #1';
/* 创建session变量并给session变量赋值*/$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// 如果客户端使用cookie,可直接传递session到page2.php
echo'
page 2';
// 如果客户端禁用cookie
echo'
page 2';
/*
默认php5.2.1下,SID只有在cookie被写入的同时才会有值,如果该session
对应的cookie已经存在,那么SID将为(未定义)空*/
?>
// page2.php
session_start();
print$_SESSION['animal']; // 打印出单个session
var_dump($_SESSION); // 打印出page1.php传过来的session值
?>

2.3 使用session函数控制页面缓存.
很多情况下,我们要确定我们的网页是否在客户端缓存,或要设置缓存的有效时间,

比如我们的网页上有些敏感内容并且要登录才能查看,如果缓存到本地了,可以直

接打开本地的缓存就可以不登录而浏览到网页了.
使用session_cache_limiter('private');可以控制页面客户端缓存,必须在

session_start()之前调用.
端缓存控制.
控制客户端缓存时间用session_cache_expire(int);单位(s).也要在

session_start()前调用.
这只是使用session的情况下控制缓存的方法,我们还可以在header()中控制控制

页面的缓存.
2.4 删除session
要三步实现.
session_destroy(); // 第一步: 删除服务器端session文件,这使用setcookie

(session_name(),'',time()-3600); // 第二步: 删除实际的session:
$_SESSION= array(); // 第三步: 删除$_SESSION全局变量数组?>
2.5 session在PHP大型web应用中的使用对于访问量大的站点,用默认的session存

贮方式并不适合,目前最优的方法是用数据库教程存取session.这时,函数bool

session_set_save_handler( callbackopen, callbackclose, callbackread,

callbackwrite, callbackdestroy, callbackgc )就是提供给我们解决这个问题

的方案.
该函数使用的6个函数如下:
1. bool open() 用来打开会话存储机制,
2. bool close() 关闭会话存储操作.
3. mixde read() 从存储中装在session数据时使用这个函数4. bool write() 将

给定session ID的所有数据写到存储中5. bool destroy() 破坏与指定的会话ID

相关联的数据6. bool gc() 对存储系统中的数据进行垃圾收集例子见php手册

session_set_save_handler() 函数.
如果用类来处理,用session_set_save_handler(
array('className','open'),
array('className','close'),
array('className','read'),
array('className','write'),
array('className','destroy'),
array('className','gc'),
)
调用className类中的6个静态方法.className可以换对象就不用调用静态方法,但

是用静态成员不用生成对象,性能更好.
2.6 常用session函数:
bool session_start(void); 初始化session
bool session_destroy(void): 删除服务器端session关联文件。

stringsession_id() 当前session的id
stringsession_name() 当前存取的session名称,也就是客户端保存session ID的

cookie名称.默认PHPSESSID。arraysession_get_cookie_params() 与这个

session相关联的session的细节.
stringsession_cache_limiter() 控制使用session的页面的客户端缓存ini

session_cache_expire() 控制客户端缓存时间bool session_destroy() 删除服

务器端保存session信息的文件void session_set_cookie_params( int lifetime

[, stringpath [, stringdomain [, bool secure [, bool httponly]]]] )设置

与这个session相关联的session的细节bool session_set_save_handler(

callbackopen, callbackclose, callbackread, callbackwrite,

callbackdestroy, callbackgc )定义处理session的函数,(不是使用默认的方式)
bool session_regenerate_id([bool delete_old_session]) 分配新的session

id

2.7 session安全问题攻击者通过投入很大的精力尝试获得现有用户的有效会话

ID,有了会话id,他们就有可能能够在系统中拥有与此用户相同的能力.
因此,我们主要解决的思路是效验session ID的有效性.
if(!isset($_SESSION['user_agent'])){
$_SESSION['user_agent'] = $_SERVER['REMOTE_ADDR'].$_SERVER

['HTTP_USER_AGENT'];
}
/* 如果用户session ID是伪造*/elseif($_SESSION['user_agent'] !=

$_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']) {
session_regenerate_id();
}
?>

2.8 Session通过cookie传递和通过SID传递的不同:
在php5.2.1的session的默认配置的情况下,当生成session的同时,服务器端将在

发送header set-cookie同时生成预定义超级全局变量SID(也就是说,写入cookie

和抛出SID是等价的.),当$_COOKIE['PHPSESSID']存在以后,将不再写入cookie,也

不再生成超级全局变量SID,此时,SID将是空的.

2.9 session使用实例 /**
* 效验session的合法性*
*/functionsessionVerify() {
if(!isset($_SESSION['user_agent'])){
$_SESSION['user_agent'] = MD5($_SERVER['REMOTE_ADDR']
.$_SERVER['HTTP_USER_AGENT']);
}
/* 如果用户session ID是伪造,则重新分配session ID */elseif($_SESSION

['user_agent'] != MD5($_SERVER['REMOTE_ADDR']
. $_SERVER['HTTP_USER_AGENT'])) {
session_regenerate_id();
}
}
/**
* 销毁session
* 三步完美实现,不可漏*
*/functionsessionDestroy() {
session_destroy();
setcookie(session_name(),'',time()-3600);
$_SESSION= array();
}
?>

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.