2011-07-05 17 views
18

Estoy tratando de detectar si la página actual se está entregando a través de SSL para decidir si incluir o no ciertos recursos externos no seguros. Mi método actual implica verificar si request.url comienza con 'https'. ¿Es esta la forma más simple de lograr esto? ¿Hay una mejor manera? ¡Gracias!Determine si la página actual está utilizando SSL en Rails

Respuesta

34

En un controlador o ver:

request.ssl? 
+1

También funciona en las vistas (por ejemplo, para mostrar una credencial de SSL para las solicitudes HTTPS) –

+0

En realidad creo que la comprobación de que el protocolo tiene 'https' va a ser mucho más seguro que esto. El encabezado podría ser manipulado en tránsito. Todo lo que está revisando con request.ssl? es @env ['HTTPS'] == 'on' || @env ['HTTP_X_FORWARDED_PROTO'] == 'https' Considerando que la ruta completa, al ser la solicitud y tener el protocolo, no se pudo falsificar. http://apidock.com/rails/ActionController/Request/ssl%3F – saneshark

+1

Estaba equivocado, todo el encabezado está encriptado y no se puede alterar en tránsito. – saneshark

Cuestiones relacionadas