2011-10-16 4 views
6

Estoy intentando crear un generador de ID de sesión personalizado. Según lo que he leído en los sitios, puede hacerlo editando manualmente los archivos de configuración de PHP; sin embargo, no estará disponible hasta que cambie de mis servidores compartidos a uno totalmente personalizable.Una forma de generar una ID de sesión personalizada sin editar php.ini

Lo que estoy tratando de preguntar es si es posible especificar cómo se generan los ID de sesión ingresando un código PHP en una página. Mi intención es usar las mismas mecánicas que el generador de ID predeterminado, pero use sha512 y algunas cosas personalizadas como sal.

+3

¿Por qué quiere esto? Las sesiones PHP son lo suficientemente seguras por defecto. – TimWolla

+0

¿Su problema es editar el archivo php.ini? ¿O que no tienes instalado el hash que estás buscando? – hakre

+0

Mi problema es que no puedo editar php.ini en un sitio de alojamiento compartido, pero no importa, @MVS me ha dado una respuesta, gracias. –

Respuesta

8

Si pasa una cadena a la función session_id() antes de llamar al session_start(), puede configurar la ID de la sesión usted mismo. Por ejemplo:

function generate_id() { 
    ... 
    return $your_id; 
} 

session_id(generate_id()); 
session_start(); 
+0

Esto no es compatible con ['session_regenerate_id()'] (http://php.net/manual/en/function.session-regenerate-id.php). – hakre

+0

Es, aunque no directo. Puede que necesite ejecutar algunas pruebas para ver si vale la pena usar el método en el que estoy pensando, pero es posible. Gracias por su preocupación, sin embargo. –

+1

Si transfiere una identificación a session_id y esa era la ID de una sesión anterior, ¿session_start continuaría la sesión anterior si cookies/get/post no tiene datos de PHPSESSID? Estoy preguntando si puede pasar el ID de sesión manualmente, en lugar de confiar en cookies/get/post. – CMCDragonkai

Cuestiones relacionadas