es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Laravel establecer nombre de la cookie que incluya un punto (.)

Estoy tratando de enviar una cookie cuyo nombre contiene dos puntos.
este es mi código

$response = Http::withHeaders([
    'Cookie' => '.cookie.withdots=test-value'
])->get('http://example.com');

ahora, cuando envío esta solicitud a mi sistema en otra ruta e imprimo las cookies, los puntos (.) se han transformado en guiones bajos ():

array:1 [
  "cookie_withdots" => "test-value"
]

Necesito que se mantengan como puntos (.). ¿Qué puedo hacer, chicos?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    No se recomienda utilizar cookies con nombres que contengan dos o más puntos debido a razones de seguridad. Sin embargo, si realmente necesitas utilizarlos, puedes intentar codificar el nombre de la cookie con base64 antes de enviarlo y luego decodificarlo al recibirlo.

    Aquí tienes un ejemplo de cómo puedes codificar el nombre de la cookie:

    $cookieName = base64_encode('.cookie.conpuntos');
    $response = Http::withHeaders([
        'Cookie' => $cookieName . '=valor-de-prueba'
    ])->get('http://ejemplo.com');
    

    Y luego decodifica el nombre de la cookie al recibirlo:

    $cookieName = base64_decode('_LmNvb2tpZS5jb25wdXRpb25z'); // reemplaza con el nombre de la cookie recibida
    $cookieValue = $_COOKIE[$cookieName]; // obtén el valor de la cookie
    

    Sin embargo, ten en cuenta que utilizar la codificación base64 para nombres de cookies no las hace completamente seguras y aún pueden ser vulnerables a ataques como XSS (cross-site scripting). Se recomienda encontrar una solución alternativa o reconsiderar el uso de cookies con nombres que contengan varios puntos.

Comments are closed.