¿Cómo puedo configurar las cookies en mi PHP apps
como HttpOnly cookies
?¿Cómo se configura el uso de cookies HttpOnly en PHP
Respuesta
- Para cookies, ver esta respuesta.
- Por propia cookie de sesión de PHP (
PHPSESSID
, por defecto), ver @richie's answer
Los setcookie()
y setrawcookie()
funciones, introducido el parámetro httponly
, de vuelta en la edad oscura de PHP 5.2.0, haciendo de este agradable y fácil. Basta con establecer el séptimo parámetro en true, según la sintaxis
Sintaxis de la función simplificada por razones de brevedad
setcookie( $name, $value, $expire, $path, $domain, $secure, $httponly)
setrawcookie($name, $value, $expire, $path, $domain, $secure, $httponly)
Introduzca NULL
de parámetros que desea permanecer como predeterminados. Es posible que también desee considerar si debe establecer el parámetro secure
.
También es posible el uso de los mayores, de nivel inferior header()
función:
header("Set-Cookie: name=value; httpOnly");
Explicación aquí desde Ilia ... 5.2 solamente a través de
httpOnly cookie flag support in PHP 5.2
Como se indica en ese artículo, se puede establecer el encabezado de sí mismo en las versiones anteriores de PHP
header("Set-Cookie: hidden=value; httpOnly");
<?php
//None HttpOnly cookie:
setcookie("abc", "test", NULL, NULL, NULL, NULL, FALSE);
//HttpOnly cookie:
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
?>
Puede especificar en la función de conjunto de cookies see the php manual
setcookie('Foo','Bar',0,'/', 'www.sample.com' , FALSE, TRUE);
Tenga en cuenta que no se detiene HttpOnly cross-site scripting; en cambio, neutraliza un posible ataque, y actualmente lo hace solo en IE (Firefox expone las cookies HttpOnly en XmlHttpRequest, y Safari no lo respeta en absoluto). Por supuesto, active HttpOnly, pero no pierda ni una hora de filtrado de salida y pruebas de fuzz en el comercio.
Esta situación puede haber cambiado desde '08, ahora. Aquí hay una lista más actualizada/actualizada: http://stackoverflow.com/questions/528405/which-browsers-do-support-httponly-cookies – Kzqai
Tengo muchas ganas de quitar mi voto negativo. –
Tenga en cuenta que las cookies de sesión PHP no usan httponly
de forma predeterminada.
de 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í:
- Tienes que llamar
session_name()
antessession_start()
- Esto también establece la ruta predeterminada a '/ ', que es necesario para Opera pero que PHP cookies de sesión no lo hacen de forma predeterminada tampoco.
http://php.net/manual/en/function.session-set-cookie-params.php Se puede hacer automáticamente a través de la función PHP anterior en lugar de la codificación personalizada. – Ryaner
Para propias cookies de sesión de PHP en Apache:
Agregar a su configuración de Apache o .htaccess
<IfModule php5_module>
php_flag session.cookie_httponly on
</IfModule>
Esto también se puede ajustar dentro de un script, con tal de que se llama antes de session_start()
.
ini_set('session.cookie_httponly', 1);
+1, ya que esto es bueno (por seguridad) para tener en su servidor completo pero en su lugar se agregó al 'php.ini'. –
Tenga en cuenta que php_flag se debe utilizar en su lugar: "No use php_value para establecer valores booleanos. Php_flag se debe usar en su lugar". http://php.net/manual/en/configuration.changes.php –
@OndrejMachulda El cambio de 'php_value' a' php_flag' no funciona. Acabo de probarlo en mi servidor .. – Nate
Puede usar esto en un archivo de encabezado.
// setup session enviroment
ini_set('session.cookie_httponly',1);
ini_set('session.use_only_cookies',1);
De esta forma todas las futuras cookies utilizarán httponly.
Just FYI session.use_only_cookies está activado por defecto en PHP> 5.3 –
y es correcto "todas las ** cookies ** de sesión ** futuras" usarán httponly, no las personalizadas ... – qdev
La sintaxis correcta del comando php_flag es
php_flag session.cookie_httponly On
Y tener en cuenta, simplemente primera respuesta desde el servidor instalar la cookie y aquí (por ejemplo, Se puede ver la directiva "HttpOnly". Así que para las pruebas de eliminar cookies desde el navegador después de cada solicitud de prueba.
- 1. ¿Cómo se eliminan las cookies de HttpOnly?
- 2. cómo pruebo el indicador de cookies httpOnly
- 3. ¿Cómo se configuran las cookies de httpOnly en ASP Classic?
- 4. ¿Cómo se configuran las cookies HttpOnly en tomcat/java webapps?
- 5. ¿Qué navegadores admiten las cookies de HttpOnly?
- 6. Forzar cookies HttpOnly con JRun/ColdFusion
- 7. Agregue el atributo 'HttpOnly' a todas las cookies de sesión
- 8. configuración de cookies con indicadores HTTPOnly en codeigniter
- 9. ¿Es posible que un ataque XSS obtenga cookies HttpOnly?
- 10. Obteniendo los parámetros de las cookies en PHP?
- 11. ¿Las sesiones de PHP establecen cookies?
- 12. ¿Cómo se configura el proxy para Java?
- 13. cómo desarmar las cookies en PHP?
- 14. ¿Cómo se configura WorkManagers en WebLogic 10.3?
- 15. ¿Cómo se puede evitar que Javascript acceda a los datos de cookies de PHP?
- 16. ¿Cómo funcionan las cookies de HttpOnly con las solicitudes de AJAX?
- 17. Cookies de Javascript vs cookies de php
- 18. ¿Cómo se configura layout_margin programmatically?
- 19. ¿Cómo se configura Classpath en el servidor de aplicaciones Websphere?
- 20. php: sesiones basadas en cookies
- 21. ¿Cómo se configura el sistema scons ruta de inclusión
- 22. ¿Cómo se configura "max_allowed_packet" en XAMPP?
- 23. Uso de Ajax con cookies
- 24. ¿Cómo se configura la reconexión en socket.io?
- 25. Uso de cookies en asp.net mvc C#
- 26. Jquery AJAX CORS + HttpOnly Cookie
- 27. Cómo configuro el indicador HttpOnly en una cookie en Ruby on Rails
- 28. ¿Cómo se configura el controlador en un proyecto Silex PHP Framework?
- 29. ¿Cómo se configura la codificación en AlternateView
- 30. ¿Cómo se configura v8 opciones en Node.js
http://stackoverflow.com/questions/528405/which-browsers-do-support-httponly-cookies Tiene la información de soporte del navegador – Kzqai
@Tchalvak No, las respuestas actuales aún son válidas No ha cambiado nada desde 2008 con respecto a la configuración de cookies solo HTTP en PHP. _Lo que los navegadores admiten cookies HTTP-only_ es diferente pregunta, con una respuesta diferente. – lanzz
Puede usar '$ cookie-> setHttpOnly (true);' con https://github.com/delight-im/PHP-Cookie – caw