Maison  >  Article  >  développement back-end  >  Analyse sur la méthode d'utilisation du cookie de session en php et codeigniter

Analyse sur la méthode d'utilisation du cookie de session en php et codeigniter

不言
不言original
2018-06-14 14:22:071694parcourir

Ce qui suit est un article sur la façon d'utiliser le cookie de session en PHP et codeigniter (explication détaillée). Le contenu est assez bon, je vais donc le partager avec vous maintenant et le donner comme référence.

1. Lire et écrire des cookies

f35d6e602fd7d0f0edfa6f7d103c1b57

setcookie('name','value',time)
Échec de la configuration, pas écrit normalement dans le navigateur, échec du test, raison inconnue

2cc198a1d5eb0d3eb508d858c9f5cbdbCI cadre

$this->input->set_cookie("views","test10",1000);
echo $_COOKIE["views"];//此方法获取值时,如果值不存在会报错,当然可以先用isset($_COOKIE["views"])判断一下

5bdf4c78156c7953567bb5a0aef2fc53Par assistant

$this->load->helper('cookie');//这行放在view也是可以的,随便
set_cookie('views','test10',1000);
echo get_cookie('views');//此方法获取值如果获取不到,会返回空,不会报错

2. Séance de lecture et d'écriture

<1> ; Session native

Démarrer :

<?php
session_start();
?>

Attribuer :

$_SESSION[&#39;views&#39;] = "test20";

Valeur :


echo "Session:". $_SESSION[&#39;views&#39;];

Durée :

séance. Lorsque le navigateur est fermé, la session php dans le cookie sera effacée et un

sera régénéré à la prochaine ouverture, bien que le serveur enregistre toujours la session. Le délai d'expiration de la session est défini dans php.ini, voir un autre article

Considérations de sécurité php (codeigniter)

2cc198a1d5eb0d3eb508d858c9f5cbdbSession du framework CI

Début :

$this->load->library(&#39;session&#39;);//load必须在controller完成,当要使用session必须先load赋值:
$this->session->views = "test11";

Valeur :


echo "Session:". $_SESSION[&#39;views&#39;];

Temps d'existence :

Le client a 2 heures de temps d'existence, lorsque le serveur La session est supprimé car l'ID de session du client est toujours valide, donc lorsqu'il sera rouvert, le serveur créera une session avec le même ID de session que celui du client. Bien sûr, peu importe qu'il faut créer un nouvel ID ou un ancien ID, parce que c'est juste L'identifiant a le même nom, mais il ne contient aucune donnée

5bdf4c78156c7953567bb5a0aef2fc53 Différence

> deux noms de session sont différents, l'un s'appelle phpsession , l'autre s'appelle ci_session

> Un seul peut être démarré, pas les deux

> 🎜>> Ne mélangez pas les deux. La méthode native doit être complètement abandonnée

> La session php native est accessible de manière informelle, et ci_session est httponly, ce qui signifie que la session native peut être attaquée via xxs, et les cookies peuvent être obtenus via js

23889872c2e8594e0f446a471a78ec4cExceptions

Il existe une situation comme celle-ci :

Quand ci_session existe déjà à cet instant, car ce ci_ est persistant

En regardant le cookie , il s'avère qu'aucune session native n'existe, cela ne peut l'être que si vous utilisez une session ci, recherchez ce fichier dans la session du serveur et constatez que la valeur n'est pas écrite. Si session_start() est déclaré, il ira à le mode natif, recréez une phpsession, et la valeur sera écrite en

//session_start();//没有启动原生的session
//$this->load->library('session');//没有启动ci的session
$_SESSION['views'] = "test23";//直接用原生的方式进行赋值
echo "Session:". $_SESSION[&#39;views&#39;];//可以正常取值出来"test23"
Si rien n'est déclaré et qu'aucune valeur n'est assignée, et que la valeur est prise directement, une erreur sera rapportée, car utiliser ci_session , le chargement doit être requis. Si nous ne chargeons pas, une erreur sera signalée. Par conséquent, il est prouvé que lors de l'attribution d'une valeur de manière native, cela équivaut à démarrer la session et à activer ci_session, mais il n'a pas l'autorisation de le faire. écrire. Cela peut être considéré comme un bug

43ad812d3a971134e40facaca816c822Comment fonctionne la session

Le fonctionnement des cookies est relativement simple à comprendre. . Il est écrit dans le cookie utilisateur et tout ce qui est écrit est lu. Tant qu'il s'agit d'un cookie sur ce site, il peut être lu par valeur clé. La valeur de session est stockée dans le serveur, mais comment savoir à quel utilisateur appartient cette valeur ? En stockant le nom du fichier de session dans le cookie utilisateur, la valeur enregistrée est placée dans un fichier du même nom sur le serveur. Le vol de cookies fait référence au vol de ces informations importantes qui sont stockées sur le serveur, mais si celles-ci sont volées, ce sera terminé. Par conséquent, la clé de session stockée dans le cookie n’est pas fiable et une authentification doit être effectuée.

Notez que lorsque

écrit la session, il écrit automatiquement la clé de session dans le cookie de l'utilisateur. Cette durée doit être définie dans le php du serveur configuré dans .ini. .

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois ! Recommandations associées :

Comment implémenter la pagination PHP CodeIgniter et la requête multi-conditions


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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