Syntax zum Setzen von Sitzungscookies

session_set_cookie_params($lifetime, $path, $domain, $secure, true);

Q1. Ist das Setzen eines Sitzungscookies wie unten sicher oder muss noch mehr getan werden?

session_set_cookie_params('3600', 'www.example.com', isset($_SERVER["HTTPS"]), true);

Q2. Was sollte die ideale Lebensdauer für das Setzen eines Sitzungscookies (aus Sicherheitsgründen) sein?

Q3. Wenn ich mich jemals dazu entscheide, meinen Webadministratorordner in eine Subdomain zu verschieben, muss der obige Code geändert werden.

3
Daksh B 4 Jän. 2016 im 19:48

2 Antworten

Beste Antwort

A1: Ihr obiger Code sieht ideal aus, solange er der PHP-Dokumentationsseite folgt. Wer sollen wir etwas anderes sagen?

A2: Das alles hängt nur davon ab, wofür genau dies verwendet wird. Im Bankgeschäft beenden einige die Sitzung gerne innerhalb von Minuten nach Inaktivität. Bei Spielen oder sozialen Netzwerken sind diese Einstellungen tendenziell entspannter und nachsichtiger, um dem Benutzer mehr Spielraum zu geben.

A3: Ja, Sie müssten das Cookie ändern, um die neue Änderung des Subdomain-Administrators widerzuspiegeln. Wenn Sie ein globales Cookie setzen möchten (das auf allen Subdomains funktioniert):

session_set_cookie_params('3600', 'example.com', (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off')? true : false, true);

Hoffe das hilft!

3
Darren 13 Jän. 2016 im 00:07
define('SESSION_EXPIRE',3600*6);

define('SESSION_EXPIRE_RELOAD',1800);

ini_set('session.gc-maxlifetime',SESSION_EXPIRE);

ini_set('session.name','prl');

ini_set('session.cookie_httponly',true);

ini_set('session.cookie_secure',false);

session_set_cookie_params(SESSION_EXPIRE);

session_start();

Wie kann ich eine PHP-Sitzung nach 30 Minuten ablaufen lassen? ?

    sessionRegenerate(){
        if (!isset($_SESSION['SESSION_CREATED']))
        {
            $_SESSION['SESSION_CREATED'] = time();
        } 
        else if (( SESSION_EXPIRE -(time() - $_SESSION['SESSION_CREATED']) ) < SESSION_EXPIRE_RELOAD && ( SESSION_EXPIRE -(time() - $_SESSION['SESSION_CREATED']) ) > 0 ) 
        {
            session_regenerate_id(true);
            $_SESSION['SESSION_CREATED'] = time();
        }
    }
0
Danilo Santos 13 Jän. 2020 im 20:37