Sto studiando un caso in cui ho un backend RESTful (basato su php) e un front-end PHP HTML + JS + ibrido in diversi sottodomini:
backend.example.com <-- A RESTful API to provide some XHR requests.
*.example.com <-- Any other domains on the same server that use the same PHP Session.
Un modo per avviare una sessione persistente in PHP senza il posizionamento di un cookie di sessione è creare il proprio ID di sessione e impostarlo utilizzando la funzione session_id ().
Disattivare la memorizzazione dei cookie di sessione, infatti, non mi consente di mantenere la sessione tra sottodomini. Quindi ho implementato una classe Session Manager, per controllare il ciclo di vita di tutte le mie classi e per consentire la condivisione della sessione tra sottodomini:
public static function sessionStart($name, $limit, $trusttoken){
(...)
$userip = $_SERVER['REMOTE_ADDR'];
$userbrowseragent = $_SERVER['HTTP_USER_AGENT'];
$id = md5($userip . $salt . $userbrowseragent . $sessionname); //Creating unique ID
session_id($id);
session_start();
(...)
}
È un modo sicuro per condividere sessioni nello stesso server ma utilizzando diversi sottodomini?
Nota
- Le sessioni verranno lette solo sul lato server (file PHP)
- Non mi interessa fidarsi delle richieste XHR.
- Evito di esporre l'ID di sessione nelle richieste.
- Non è possibile utilizzare SSL.