¿Cómo configurar el uso HttpOnly cookies en PHP

Cómo puedo configurar las cookies en mi PHP apps como HttpOnly cookies?

  • stackoverflow.com/questions/528405/… Tiene el navegador con información de apoyo.
  • No, el actual respuestas están autorizados. Nada ha cambiado desde el año 2008 con respecto a HTTP-sólo la configuración de las cookies en PHP. Qué navegadores de apoyo de sólo HTTP cookies es una cuestión diferente, con una respuesta diferente.
  • Usted puede utilizar $cookie->setHttpOnly(true); con github.com/delight-im/PHP-Cookie
InformationsquelleAutor Scott Warren | 2008-08-31

9 Kommentare

  1. 83
    • Para sus cookies, ver esta respuesta.
    • Para PHP propia cookie de sesión (PHPSESSID, por defecto), ver @richie respuesta

    La setcookie() y setrawcookie() funciones, introdujo el httponly parámetro, en la edad oscura de PHP 5.2.0, haciendo de este agradable y fácil. Simplemente ajusta el 7 de parámetro a true, como por la sintaxis

    Sintaxis de la función simplificada para mayor brevedad

    setcookie(    $name, $value, $expire, $path, $domain, $secure, $httponly )
    setrawcookie( $name, $value, $expire, $path, $domain, $secure, $httponly )

    Entrar NULL para los parámetros que desea permanecer como predeterminado.
    Puede que también desee considerar si debe ser la configuración de la secure parámetro.

    También es posible con la edad, menor nivel header() función:

    header( "Set-Cookie: name=value; httpOnly" );
  2. 107

    Para PHP propias cookies de sesión en Apache:

    agregar esto a tu configuración de Apache o .htaccess

    <IfModule php5_module>
        php_flag session.cookie_httponly on
    </IfModule>

    Esto también puede ser ubicado dentro de una secuencia de comandos, como se llama antes de session_start().

    ini_set( 'session.cookie_httponly', 1 );
    • +1, ya que es una buena cosa (por seguridad) tener en lugar en todo el server, sino que se agrega a la php.ini.
    • Por favor nota php_flag debe ser usado en lugar de: «no use php_value para establecer los valores booleanos. php_flag debe utilizarse en su lugar.» php.net/manual/en/configuration.changes.php
    • El cambio de php_value a php_flag no funciona. Acabo de probar en mi servidor..
    • Cuando se cambia a php_flag, usted también debe cambiar el valor a on o off – ver el manual.
  3. 13

    Ser conscientes de que HttpOnly no deja de cross-site scripting; en su lugar, se neutraliza un posible ataque, y en la actualidad hace que sólo en IE (FireFox expone HttpOnly cookies en XmlHttpRequest, y Safari no honra a todos). Por todos los medios, gire a la HttpOnly, pero no soltar ni una hora de salida y el filtrado de las pruebas de confusión en el comercio para él.

  4. 13

    Tenga en cuenta que PHP cookies de sesión no uso httponly por defecto.

    Para hacerlo:

    $sess_name = session_name();
    if (session_start()) {
        setcookie($sess_name, session_id(), null, '/', null, null, true);
    }

    Un par de elementos de la nota aquí:

    • Usted tiene que llamar a session_name()
      antes de session_start()
    • Este también
      establece la ruta de acceso predeterminada ‘/’, el cual
      es necesario para la Ópera, pero que PHP
      las cookies de sesión no lo hacen por defecto
      cualquiera de los dos.
  5. 6
    <?php
    //None HttpOnly cookie:
    setcookie("abc", "test", NULL, NULL, NULL, NULL, FALSE); 
    
    //HttpOnly cookie:
    setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 
    
    ?>

    Fuente

  6. 3

    Usted puede utilizar esto en un archivo de encabezado.

    //setup session enviroment
    ini_set('session.cookie_httponly',1);
    ini_set('session.use_only_cookies',1);

    De esta manera en el futuro todos los cookies de sesión se utilizan httponly.

    • Actualizado.
    • Sólo para tu INFORMACIÓN de la sesión.use_only_cookies está activado por defecto en PHP >5.3
    • y lo correcto es «en el futuro todos los session cookies» se utilizan httponly, no personalizados …
  7. 1

    La sintaxis de la php_flag comando es

    php_flag  session.cookie_httponly On

    Y ser conscientes, solo es la primera respuesta de conjunto de servidor de la cookie y aquí (por ejemplo, Usted puede ver el «HttpOnly» de la directiva. Así que para las pruebas de eliminar las cookies del navegador después de cada solicitud de prueba.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea