none
Evitar acceso por IP Publica RRS feed

  • Pregunta

  • Hola, estoy configurando un sitio en asp.net + c# el cual tiene un certificado ssl y solo quiero retringir que se pueda acceder al mismo utilizando su dominio

    O sea, quiero que solo se pueda ingresar por www.midominio.com.ar y no por la ip publica asociada a este dominio

    Por ejemplo ahora, suponiendo que la ip publica sea 190.99.99.99 y el usuario la tipea en la barra de direcciones
    https://190.99.99.99 ,mi aplicacion esta respondiendo, y es lo que quiero evitar

    Solo debe responder cuando el usuario digite https://www.midominio.com.ar

    Se puede restringir esto, o en su defecto, si tipea la ip publica, que mi sitio lo rediriga o cambie la direccion
    al dominio correspondiente

    Espero haberme explicado

    Gracias
    lunes, 3 de agosto de 2020 13:19

Todas las respuestas

  • Si el certificado solo contiene el nombre, y no la dirección IP, cuando accedes por IP el navegador presenta un error diciendo que no coincide con el certificado... pero eso no impide que el servidor devuelva el resultado; si el usuario decide despreciar la advertencia en su navegador, puede acceder a la página.

    Un remedio sencillo, pero no completamente fiable, es cambiar la configuración en IIS poniendo en el HostHeader del Binding el nombre del sitio. En ese caso, el servidor solo responderá cuando accedan por nombre y no por dirección... pero es factible que un usuario se salte esta limitación si usa algún software que falsifique las cabeceras HTTP y meta ahí el nombre del dominio en lugar de la dirección, aunque la URL se conecte por dirección IP.

    Finalmente, desde tu código podrías meter una comprobación sobre la URL y rechazar la conexión cuando sea por IP en lugar de DNS... pero esto está sometido a la misma limitación del caso anterior, es decir, si alguien falsifica la cabecera se lo pueden saltar. No creo que haya ningún mecanismo infalible para poder rechazar a quienes no se conecten por nombre, porque el servidor no tiene ninguna forma de saberlo: el nombre se traduce en dirección IP en el lado cliente, y cuando el paquete TCP llega al servidor solo se sabe la IP, el nombre no está en ninguna parte. Bueno, sí, está escrito en modo texto dentro de las cabeceras HTTP, pero como ya hemos dicho esto es factible trucarlo desde el lado cliente, y el servidor no tiene manera de saberlo.

    lunes, 3 de agosto de 2020 16:49