Https on raisl

Hola a todos

Tengo que desarrollar una aplicación con https y por lo que leí
por ahí estoy empezando a desestimar mis opciones de usar RoR.

Lo que lei es que existe un problema con los redirect_to, que no
sabén que se esta usando HTTPS y tirán contra HTTP. Alguien que
me de una buena noticia? :slight_smile:

Gracias!!

On Dec 11, 2007, at 1:14 PM, Pablo Formoso E. wrote:

Tengo que desarrollar una aplicación con https y por lo que leí
por ahí estoy empezando a desestimar mis opciones de usar RoR.

Lo que lei es que existe un problema con los redirect_to, que no
sabén que se esta usando HTTPS y tirán contra HTTP. Alguien que
me de una buena noticia? :slight_smile:

redirect_to admite varios tipos de argumentos. En general salvo que tu
le pases a manopla una cadena que empiece con “http://” usara el mismo
protocolo que el del request actual. Es decir, genera una URL segura
si lo es la actual.

Podria pasar que la URL destino fuese segura y no lo sea la actual. En
ese caso puedes especificar que el protocolo es seguro en la llamada,
aunque esa aproximacion no me gusta mucho. Yo uso el plugin Secure
Actions

http://agilewebdevelopment.com/plugins/secure_actions

que permite declarar que acciones son seguras y eso lo cuadra con la
generacion de URLs, aqui escribi un poco sobre como va y algun pequeño
gotcha que encontre:

Advogato: Blog for fxn

– fxn

En tractis tenemos toda la aplicación bajo https y el apache tiene
redirects para pasar que todas las peticiones http sean https.

Sobre redirect_to, cuando le pasas un hash emplea url_for para la
redirección.

url_for permite espedificar el protocolo de forma explícita (por
defecto pilla el de la petición)
Así que podrás hacer redirect_to :action => ‘signup’, :protocol =>
‘https’

Además, modificar el core para que todos los redirect_to vayan por
https es trivial :slight_smile:

Un saludo!

On Dec 11, 2007 1:14 PM, Pablo Formoso E.
[email protected] wrote:

Gracias!!


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


Ernesto Jiménez Caballero
Software Engineer Leader
Negonation
(34) 620 475 382
[email protected]


Ror-es mailing list
[email protected]

Yo no me liaria …

http://dev.rubyonrails.org/browser/plugins/ssl_requirement

És una maravilla.

Un saludo,

Francesc

On Dec 11, 2007, at 2:56 PM, Ernesto Jiménez Caballero wrote:

https es trivial :slight_smile:

Lo que lei es que existe un problema con los redirect_to, que no

[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Por cierto, os mando una ejemplo de la configuración de apache que
utilizo. (al final del mail)

Esto junto que el plugin i en 10 minutos lo teneis funcionando.

 http://dev.rubyonrails.org/browser/plugins/ssl_requirement

Para no tener que hacer configuraciones en la maquina de desarrollo lo
que hice fue añadir una comprovación del entorno en el que se estaba
ejecutando la
aplicación.

 if %w( production stagging ).include? RAILS_ENV

ssl_required :login, :profile, :profile_extended, :new, :change_password
end


Un saludo,

Francesc


<Proxy balancer://railsapp1>
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001

ExtendedStatus On

<Location /server-status>
SetHandler server-status

<Location /balancer-manager>
SetHandler balancer-manager

<VirtualHost *>

ServerName test.railsapp1.com

LimitRequestBody 102400

ProxyRequests Off
ProxyPass /server-status !
ProxyPass /balancer-manager !
ProxyPass / balancer://railsapp1/
ProxyPassReverse / balancer://railsapp1/

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

NameVirtualHost *:443

<VirtualHost *:443>

ServerName railsapp1.com:443

LimitRequestBody 102400

ProxyRequests Off
ProxyPass /server-status !
ProxyPass /balancer-manager !
ProxyPass / balancer://railsapp1/
ProxyPassReverse / balancer://railsapp1/

RequestHeader set X_FORWARDED_PROTO “https”

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

-------------------------------------------

On Dec 11, 2007, at 2:56 PM, Ernesto Jiménez Caballero wrote:

https es trivial :slight_smile:

Lo que lei es que existe un problema con los redirect_to, que no

[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

On Dec 11, 2007, at 4:48 PM, Francesc E. wrote:

http://dev.rubyonrails.org/browser/plugins/ssl_requirement

El problema que le veo a ese plugin es que no esta integrado con la
generacion de rutas.

La idea de ssl_requirement es:

si viene una peticion en claro
y deberia ser segura, entonces
hago una redireccion con https

Claro, tu no quieres que el form de login viaje en claro y luego se
redirija la peticion, tu quieres que ya de entrada el password vaya
cifrado.

Por tanto, usando ese plugin estas obligado a poner el HTTPS a mano en
las vistas, ya sea en el form de login en el ejemplo, ya sea en los
enlaces a la pagina que lo contiene (en cuyo caso el form hereda el
protocolo de la pagina), pero has de acordarte.

Por eso prefiero Secure Actions, porque declaro las acciones seguras
en los controladores como uno hace con ssl_requirement y se que alla
donde ponga un link iria el protocolo correcto automaticamente.

Por cierto, Enesto … tu eres Ernex no?

Un saludo,

Francesc

On Dec 11, 2007, at 6:40 PM, Ernesto Jiménez Caballero wrote:

Exacto.
en claro por un momento en general no importara. Eso desde el punto

[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

“Off-Topic” ?

Hace unos meses llamé a los servicios informaticos de La Caixa porque
al entrar en su web hay un formulario que envia los datos del usuario
SIN ENCRIPTAR!!!

Yo alterado empezé a pasarlo todo por un sniffer, i se veian como “mis
datos” salian de mi maquina sin encriptar. Los de “La Caixa” entidad a
la que respeto porque guardan todo mi dinerito, me dijeron que habia
un javascript que se encargaba de hacer eso … i que lo hacian para
evitar que cada vez que entrara un usuario en la web apareciera el
mensaje de aviso del certificado SSL, pero aun i así el formulario no
tenia ni SSL ni nada … ahora lo han cambiado i aparece un churro de
JS por allì en medio.

Mi pregunta fué … i si no tengo Javascripts activado? Pues que no
puedes utilizar el servicio. Aix …

Así que hay muchas manera de hacer las cosas. :wink:

Francesc

On Dec 11, 2007, at 6:36 PM, Xavier N. wrote:

por HTTP hay un form de login. El password viajara en claro, y con la
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Utilizo SSH, copio archivos con SCP, uso subversion con SVN+SSH con
clave pública y todo tractis va por SSL :slight_smile:

En ningún momento he dicho que el login debería ir en claro, yo creo
que para bien, todo debería ir por SSL.

Lo que digo es que la ganancia que tiene el usuario por poner el
login con SSL es más bien escasa, cuando luego van a hacer login en
cualquier otra web, con el mismo password y sin SSL :slight_smile:

La seguridad es tan fuerte como el eslabón más débil, ya puedes
proteger todo lo que quieras el login si luego el usuario va a usar el
mismo password en una web sin cifrar.

Sobre cómo guardar los passwords: hash + salt

On Dec 11, 2007 7:13 PM, Francesc E. [email protected]
wrote:

repositorio se hacia por SSL porque habia todas las claves de acceso

Siendo realistas. ¿Qué ganan la mayoría de usuarios metiendo por SSL

por


Negonation

Ernesto Jiménez Caballero
name. Francesc E. i Martí
voice. +34 678.681.603


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


Ernesto Jiménez Caballero
Software Engineer Leader
Negonation
(34) 620 475 382
[email protected]

Si un usuario va a la pantalla de login, y hay un SSL requirement de
que esa
accion sea segura, al usuario se le redirecciona a https:// y el form
tiene el mismo
protocolo, no?

(XFN, que em fas dubtar!!!)

Cesc

On Dec 11, 2007, at 4:58 PM, Xavier N. wrote:

y deberia ser segura, entonces

Por eso prefiero Secure Actions, porque declaro las acciones seguras
en los controladores como uno hace con ssl_requirement y se que alla
donde ponga un link iria el protocolo correcto automaticamente.


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Y le haces pagar al usuario la disminución de velocidad al moverse por
pàginas SSL?

Creo que eso es muy feo. Vaya, ya lo dices tu, eres “algo radical”.

:wink:

Francesc

On Dec 11, 2007, at 6:40 PM, Ernesto Jiménez Caballero wrote:

Exacto.
en claro por un momento en general no importara. Eso desde el punto

[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Yo por mi parte diría, que si se va a poner SSL, mejor forzar todo el
tráfico por SSL, pero para eso soy algo radical :slight_smile:

On Dec 11, 2007 6:36 PM, Xavier N. [email protected] wrote:

por HTTP hay un form de login. El password viajara en claro, y con la
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


Ernesto Jiménez Caballero
Software Engineer Leader
Negonation
(34) 620 475 382
[email protected]

Lo del mensaje del SSL de la caixa me parece muy cutre.

Si compras un certificado SSL firmado por una autoridad de las que
vienen instaladas en los navegadores el mensaje de SSL solo te sale
cuando hay algún problema (entra en tractis y verás que va por SSL y
no te sale ninguna alerta)

Los navegadores llevan una serie de certificados de autoridades
instalados por defecto (en Firefox, preferencias → avanzado →
cifrado → ver certificados → autoridades). Estos certificados se
emplean para validar los certificados SSL de las webs que visitas, y
cuando un certificado está validado por una de esas autoridades el
navegador no muestra ningún mensaje. Los navegadores solo muestran
mensajes cuando no saben si se pueden fiar de un certificado (el
certificado no está validado por ninguna de las autoridades que están
instaladas).

Bueno, me estoy alejando bastante del thread, así que si queréis
debatir el tema abrimos uno distinto, pero en esto hay muchas cosas a
considerar :slight_smile:

Por cierto, no soy Ernex :wink:

On Dec 11, 2007 6:51 PM, Francesc E. [email protected]
wrote:

Yo por mi parte diría, que si se va a poner SSL, mejor forzar todo el

de

http://lists.simplelogica.net/mailman/listinfo/ror-es


Ernesto Jiménez Caballero
Software Engineer Leader
Negonation
(34) 620 475 382
[email protected]

Siendo realistas. ¿Qué ganan la mayoría de usuarios metiendo por SSL el
login?
Total, la mayoría va a usar los mismos passwords en tu web que en
otras que no lo cifrarán.

Me parece que el login es la parte que menos se beneficia de SSL, y
además ya tienes herramientas para moverlo sin SSL.

Por otro lado: ¿de qué te sirve poner el login por SSL si luego el
identificador de sesión va a ir en plano y le van a poder hacer un
hijacking de sesión?

Además, para temas de login no hace falta emplear SSL para no enviar
la contraseña del usuario en plano. p.ej: hace años que cocacola hace
login en su web con el MD5 del password del usuario, con una
implementación bastante cutre, pero nos da para ver que no es
necesario SSL para proteger el password :slight_smile:

On Dec 11, 2007 6:43 PM, Francesc E. [email protected]
wrote:

tambien lo es … asi que lo datos no van a “en claro”.
dejar que se llegue a ella por una redireccion porque si esa pagina
http://lists.simplelogica.net/mailman/listinfo/ror-es


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


Ernesto Jiménez Caballero
Software Engineer Leader
Negonation
(34) 620 475 382
[email protected]

On Dec 11, 2007, at 5:07 PM, Francesc E. wrote:

Si un usuario va a la pantalla de login, y hay un SSL requirement de
que esa
accion sea segura, al usuario se le redirecciona a https:// y el form
tiene el mismo
protocolo, no?

Yep :-).

On Dec 11, 2007, at 5:21 PM, Francesc E. wrote:

Ei, tenia que probarlo para confirmar que si la ruta es https el
formulario
tambien lo es … asi que lo datos no van a “en claro”.

Exacto.

El gotcha es que el form va en claro si la pagina que lo contiene no
es segura
, por ejemplo cuando en una home normal y corriente servida
por HTTP hay un form de login. El password viajara en claro, y con la
redireccion en seguro en una segunda peticion, pero ya circulo en
claro en la primera.

En el caso de que el form viva en una pagina que ya va por SSL puedes
dejar que se llegue a ella por una redireccion porque si esa pagina va
en claro por un momento en general no importara. Eso desde el punto de
vista de seguridad esta bien. Hay una redireccion algo gratuita por no
generar ya la URL como la quieres, pero eso ya va a gustos.

Que la información de login vaya “en claro” por la red me parece un
poco feo pero entiendo que en algunas webs, por la información que hay
no sea “estrictamente” necesario. Pero igualmente me parece feo.

Supongo entonces que te conectas por telnet, que accedes a los
servidores via ftp por el puerto 21 y que no te preoucupa que alguien
esté escuchando al otro lado.

No se, en el ultimo proyecto que estuve trabajando los checkouts del
repositorio se hacia por SSL porque habia todas las claves de acceso
de las pasarelas de pago en los archivos de configuración. No me
imagino moviendo esos datos sin SSL.

Tu como guardas los passwords en la base de datos?

Cesc

On Dec 11, 2007, at 6:56 PM, Ernesto Jiménez Caballero wrote:

hijacking de sesión?

por


Negonation


Software Engineer Leader
Negonation
(34) 620 475 382
[email protected]


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Ei, tenia que probarlo para confirmar que si la ruta es https el
formulario
tambien lo es … asi que lo datos no van a “en claro”.

Un saludo,

Francesc

On Dec 11, 2007, at 4:58 PM, Xavier N. wrote:

y deberia ser segura, entonces

Por eso prefiero Secure Actions, porque declaro las acciones seguras
en los controladores como uno hace con ssl_requirement y se que alla
donde ponga un link iria el protocolo correcto automaticamente.


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603