Configuración de las cookies en los carriles con opción de dominio
-
20-09-2019 - |
Pregunta
Estoy tratando de establecer una cookie en un dominio y acceder a él desde otro. ¿Es esto posible?
Esto es lo que estoy haciendo en mi aplicación:
En un controlador, se accede a la acción de prueba a través de este url:
def test
cookies[:foo] = {
:value => 'something',
:domain => 'myapp.heroku.com'
}
end
En mismo controlador, se accede a la acción test2 a través de este url:
http://myapp.heroku.com/account/test2
def test2
puts "foo=#{cookies[:foo]}"
end
pero el valor de las cookies [: foo] siempre está en blanco. ¿Es posible acceder a la cookie del dominio heroku.com. Pensé establecer la opción: dominio permitiría esto.
Gracias.
Solución
El: opción de dominio (dominio y el establecimiento de las cookies en general) sólo funciona a través de los subdominios. es decir, para app1.mysite.com y app2.mysite.com - se puede establecer el dominio de la cookie a .mysite.com y lo han compartido entre los subdominios
.Esto es sólo cómo funcionan las cookies están diseñadas para funcionar. myapp.com y myapp.heroku.com son dominios separados, no subdominios, por lo que el intento de establecer el dominio de esta manera no se va a trabajar.
Hay algunas maneras de lograr las cookies de varios dominios verdaderos - pero son en lugar involucrados.
Otros consejos
No se puede hacer esto para un dominio diferente, pero puede hacerlo para los subdominios. Así, por ejemplo,
una aplicación que se ejecuta en example.com
dominio puede establecer una cookie para subdomain.example.com
pero no para exampleapp.com
.
Tengo que añadir, si fuera posible establecer cookies para otros dominios, arbitrarias, no habría problemas masivos de seguridad / privacidad.
Puede establecer las mismas cookies para todos los dominios de la siguiente manera en environment.rb:
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:session_domain => '.mydomain.com']
aquí para la documentación.
Es posible que desee comprobar hacia fuera http://coderack.org/users/ ahamid / middlewares / 142-session-inyector