none
Dudas novato con seguridad en MVC RRS feed

  • Pregunta

  • Hola, he estado investigando sobre la seguridad en MVC y me han surgido unas dudas, les pido su ayuda por favor.

    1.        Sé que SSL y HTTPS son dos cosas diferentes, puedo utilizar(para mas seguridad) el atributo [RequireHttps] junto con <httpCookies requireSSL="true" />  o son excluyentes(es decir, al utilizar uno no es necesario el otro) ?
    2.        Si quisiera utilizar cookies con SSL y autenticacion basada en Forms  basta con definir

    <httpCookies requireSSL="true" />

    Y en Web.config: 

    <system.web>

        <authentication mode="Forms">

            <forms requireSSL="true">

                /* forms content */

            </forms>

        </authentication>

    </system.web>

    y luego aplicar 

    filters.Add(new RequireHttpsAttribute());

    O necesito modificar, agregar algo mas por ejemplo en Global.asax, en Application_start(), etc?

    3. Me confundo al utilizar [RequiresHttps] en un controlador, significa que va a buscar una conexión segura y en caso de no encontrarla va enviar un error o va utilizar Http y seguirá la lógica definida en mi controlador sin notificarme que en vez de Https utilizo Http? porque de ser así a mi entender lo primero y mas importante sera habilitar Https en el IIS

    4. Puedo utilizar [RequiresHttps] en todos los controladores que desee(o bien en toda mi aplicación) o solamente en aquellos como Login, Create, etc en que pido información al usuario?

    5. Por ultimo, viendo ejemplos del atributo [Authorize] utilizando autenticacion basada en Forms, veo que pueden autorizar usuarios especificos= [Authorize(Users="admin., admin2")], pero tambien veo que pueden autorizar roles especificos =[Authorize(Roles="Admin, Premium")], pero segun se, cuando quieres autorizar roles debes crear un ticket para modificar la cookie, estoy en lo correcto o es que al utilizar autenticacion con Forms este verifica tanto los usuarios como los roles?


    pabletoreto




    • Editado pabletoreto domingo, 18 de enero de 2015 1:00
    sábado, 17 de enero de 2015 23:34

Respuestas

  • >>httpCookies requireSSL = “true” activo el Https y por ende ya no necesito utilizar el atributo [RequireHttps] ?

    no, ssl lo habilitas en el IIS usando un certificado, con poner un valor en el config no habilitas nada

    vuelvo a remarcar que ese tag en particular indica como se seguriza la cookie, pero no le dices nada como viaja la informacion en el request

     https y Certificado SSL

    >>Lo pregunto porque cito "puedes habilitar SSL

    remarco nuevamente que la seguridad del transporte de los datos que se envian en el request no tiene nada que ver con la seguridad que aplicas a tu sitio web

    https y ssl aplican en el transporte de los datos generando un canal seguro y encriptado con un certificado

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta pabletoreto domingo, 18 de enero de 2015 6:33
    domingo, 18 de enero de 2015 5:32

Todas las respuestas

  • hola

    >>Sé que SSL y HTTPS son dos cosas diferentes

    no es lo mismo pero se complementan, definir un enlace SSL es quien habilita el protocolo HTTPS

    uno habilita al otro

    >>puedo utilizar(para mas seguridad) el atributo [RequireHttps] junto con <httpCookies requireSSL="true" />  o son excluyentes

    es que no tienen relacion, al menos no de forma directa

    que la cookies requiera un enlace seguro es diferente a que la comunicacion sea segura, aunque imagino en algun punto se complementan ya que en el request viaja la informacion de la cookies

    >>Si quisiera utilizar cookies con SSL y autenticacion basada en Forms  basta con definir

    creo que estas confundiendo un enlace seguro con la autenticacion y esto si no tien nada que ver uno con otro

    puedes habilitar SSL para usar HTTPS y no solicitar ninguna credencial al usuario, que tu sitio pida autenticacion con usuario y password no tiene nada que ver con la forma en que el canal http aplica seguridad en el transporte de los datos

    siempre es recomendable que si envias informacion de login como usuario y password sea sobre un canal seguro con SSL, pero si estas en una red interna no haria falta un canal seguro

    >>Me confundo al utilizar [RequiresHttps] en un controlador, significa que va a buscar una conexión segura y en caso de no encontrarla va enviar un error o va utilizar Http y seguirá la lógica definida en mi controlador sin notificarme que en vez de Https utilizo Http?

    entiendo que ese atributo solo va a tomar la entrada si proviene de una accion realiza en un enlace seguro

    RequireHttps

    buscar no va a buscar nada, solo va a filtrar la operacion que reciba, si alguien usando alguna tecnica como ser ajax o alguna tool como ser SoapUI invoca algun action de ese controller seguro la rechace porque por ingresa por https

    >>Puedo utilizar [RequiresHttps] en todos los controladores que desee(o bien en toda mi aplicación) o solamente en aquellos como Login, Create, etc en que pido información al usuario?

    depende de la criticidad de la informacion que envies, seguramente la accion de autenticacion deba requerir https y operaciones donde envies datos sensisbles del usuario como ser datos de cuentas bancarias, etc tambien

    despues el resto puedes o no definirlo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 18 de enero de 2015 1:15
  • hola

    >>Sé que SSL y HTTPS son dos cosas diferentes

    no es lo mismo pero se complementan, definir un enlace SSL es quien habilita el protocolo HTTPS

    uno habilita al otro

    >>puedo utilizar(para mas seguridad) el atributo [RequireHttps] junto con <httpCookies requireSSL="true" />  o son excluyentes

    es que no tienen relacion, al menos no de forma directa

    que la cookies requiera un enlace seguro es diferente a que la comunicacion sea segura, aunque imagino en algun punto se complementan ya que en el request viaja la informacion de la cookies

    >>Si quisiera utilizar cookies con SSL y autenticacion basada en Forms  basta con definir

    creo que estas confundiendo un enlace seguro con la autenticacion y esto si no tien nada que ver uno con otro

    puedes habilitar SSL para usar HTTPS y no solicitar ninguna credencial al usuario, que tu sitio pida autenticacion con usuario y password no tiene nada que ver con la forma en que el canal http aplica seguridad en el transporte de los datos

    siempre es recomendable que si envias informacion de login como usuario y password sea sobre un canal seguro con SSL, pero si estas en una red interna no haria falta un canal seguro

    >>Me confundo al utilizar [RequiresHttps] en un controlador, significa que va a buscar una conexión segura y en caso de no encontrarla va enviar un error o va utilizar Http y seguirá la lógica definida en mi controlador sin notificarme que en vez de Https utilizo Http?

    entiendo que ese atributo solo va a tomar la entrada si proviene de una accion realiza en un enlace seguro

    RequireHttps

    buscar no va a buscar nada, solo va a filtrar la operacion que reciba, si alguien usando alguna tecnica como ser ajax o alguna tool como ser SoapUI invoca algun action de ese controller seguro la rechace porque por ingresa por https

    >>Puedo utilizar [RequiresHttps] en todos los controladores que desee(o bien en toda mi aplicación) o solamente en aquellos como Login, Create, etc en que pido información al usuario?

    depende de la criticidad de la informacion que envies, seguramente la accion de autenticacion deba requerir https y operaciones donde envies datos sensisbles del usuario como ser datos de cuentas bancarias, etc tambien

    despues el resto puedes o no definirlo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Gracias Leandro.

    Significa entonces que con utilizar httpCookies requireSSL = “true” activo el Https y por ende ya no necesito utilizar el atributo [RequireHttps] ? porque entendía que con indicar que quería utilizar SSL en mis cookies la información se cifraba y era mas difícil que un ente externo pudiera descifrar la información que mandaba en estas cookies(como información de registro) pero pensaba que para mas seguridad utilizaba RequireHttps, pero segun entiendo en tu respuesta no es necesario ya que con especificar HttpCookies requireSSL le digo a mi sitio web que utilice Https ya sea que utilice cookies o no, es así?

    Lo pregunto porque cito "puedes habilitar SSL para usar HTTPS y no solicitar ninguna credencial al usuario, que tu sitio pida autenticacion con usuario y password no tiene nada que ver con la forma en que el canal http aplica seguridad en el transporte de los datos" 


    pabletoreto

    domingo, 18 de enero de 2015 1:47
  • >>httpCookies requireSSL = “true” activo el Https y por ende ya no necesito utilizar el atributo [RequireHttps] ?

    no, ssl lo habilitas en el IIS usando un certificado, con poner un valor en el config no habilitas nada

    vuelvo a remarcar que ese tag en particular indica como se seguriza la cookie, pero no le dices nada como viaja la informacion en el request

     https y Certificado SSL

    >>Lo pregunto porque cito "puedes habilitar SSL

    remarco nuevamente que la seguridad del transporte de los datos que se envian en el request no tiene nada que ver con la seguridad que aplicas a tu sitio web

    https y ssl aplican en el transporte de los datos generando un canal seguro y encriptado con un certificado

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta pabletoreto domingo, 18 de enero de 2015 6:33
    domingo, 18 de enero de 2015 5:32