¿Cómo verificar que alguien posee un sitio web?

10

Estoy tratando de pensar en formas de, de la manera más segura posible, verificar que un usuario posee un sitio web que dice tener.

Aquí hay algunas formas que he visto:

  • Cargue un archivo HTML con un nombre oscuro en el directorio raíz con contenido dado
  • Incluya una metaetiqueta u otro comentario en alguna parte de la fuente de la página de inicio
  • Enviar un correo electrónico a una dirección @domainwearetryingtovalidate.tldcon un enlace de verificación
  • Verifique un registro CNAME o TXT
  • Verificar registros de WHOIS
  • Valide físicamente llamando o enviando un correo electrónico a la línea de soporte, actualizando manualmente los registros

Y aquí están los problemas con esos métodos, en orden:

  • Es posible que algunas configuraciones de sitios web no permitan simplemente cargar un archivo a la raíz
  • Un diseño deficiente del sitio podría permitir que un usuario de ese sitio agregue esta metaetiqueta
  • Los sitios web que proporcionan servicios de correo electrónico hacen que esto sea inútil; tomar gmail.compor ejemplo
  • Eso es demasiado complejo para la mayoría de los propietarios de sitios web pequeños para descubrir cómo hacerlo
  • Esos son públicos; cualquiera puede pretender ser quien sea. Sin mencionar con mayor frecuencia inexacta.
  • Huuuuge pérdida de tiempo

¿Hay alguna otra forma de verificar que un usuario en su sitio posee un sitio web en particular? De los métodos que enumeré, ¿cuáles son los mejores y los peores? En mi opinión, los ordené de mejor a peor, pero también me gustaría ver qué piensan los demás.

Planeo implementar uno o más de estos en PHP.

Ciclón
fuente
3
Esta es sin duda una pregunta de programación. Si estuviera destinado a webmasters, lo pondría allí.
Para una solución automatizada, está atascado en lo que enumeró. Otras compañías importantes (es decir, Google) usan una de las primeras cuatro opciones. Me parece increíblemente irregular que un usuario no pueda hacer uno de los primeros cuatro.
1
@ rlb.usa Sería una pregunta para los webmasters si le preguntaba cómo agregar un registro CNAME para mi dominio para verificar que tengo que para un determinado servicio
2
Creo que el primer problema que tiene que resolver es decidir: ¿qué significa "poseer" un sitio web? ¿Ser administrador? ¿Tener acceso al sistema de archivos? Tener un derecho de propiedad legal? ¿Tiene un deber de mantenimiento por medio de un acuerdo escrito o verbal? ¿Pagando las facturas de hosting? ¿Pagando las cuentas del dominio? ¿Pagando a los diseñadores?
Carreras ligeras en órbita
1
@Cyclone: estoy trabajando para usted de forma gratuita, en virtud del hecho de que estoy perdiendo completamente mi tiempo contribuyendo a esta pregunta.
Carreras ligeras en órbita

Respuestas:

8

Definitivamente pienso

  • Cargue un archivo html con un nombre oscuro en el directorio raíz con contenido dado

Es el mejor camino a seguir. De hecho, he tenido que hacer esto una vez. Y no creo que muchas configuraciones de sitios web le impidan hacer esto.

Si está realmente preocupado por esto, ¿por qué no permitir todas las opciones (seguras)?


En cuanto a tu comentario:

Sí, pero con los sistemas MVC (como codeigniter), puede ser una molestia descubrir cómo acceder a un archivo físico que no es parte del sistema principal

En estos casos raros , deje que esos administradores vayan con los registros CNAME / TXT o llámelos :-)

aioobe
fuente
1
Correcto ... ahí es donde tuve que hacerlo ;-)
2
Los primeros dos que enumeré fueron de herramientas para webmasters de Google
@ Ciclón, estoy de acuerdo con usted en que el primero parece más seguro que el segundo.
Lo que apesta de esto es que terminas con un archivo con un nombre oscuro por servicio, abarrotando el directorio raíz. No es un defecto terrible, pero hay alternativas más limpias.
Bobby Jack
Hmm ... Creo que pusiste el archivo con un nombre oscuro allí temporalmente durante el proceso de verificación.
aioobe
6

Cargar un archivo con un nombre oscuro es el camino a seguir.

Usted escribió que el inconveniente es que es posible que no se les permita cargar un archivo a la raíz. Bueno, en ese caso significa que no son dueños del sitio web, que es lo que estás tratando de descubrir.

Laurent
fuente
Exactamente. No necesita acceso "root" al servidor, es decir, fuera de la carpeta htmlo www.
Chris Laplante
Quiero decir, no está permitido en el que las reglas de reescritura puede hacer que sea difícil o compleja para cargar el archivo
@Cyclone, cierto, pero supongo que es bastante raro no permitir el acceso a un archivo HTML físico.
Sí, pero con los sistemas MVC (como codeigniter), puede ser una molestia descubrir cómo acceder a un archivo físico que no es parte del sistema principal
Creo que CI todavía permite el acceso a archivos HTML físicos. Pero por si acaso, también podría permitir el método de metaetiquetas, para que sus usuarios no se queden atrapados en caso de que haya un problema con su archivo .htaccess o el marco MVC.
1

Recomendaría usar metaetiqueta ...

  • Incluir una metaetiqueta

fuente
0

Personalmente, iría con la opción de correo electrónico automatizado.

Solicite al usuario que ingrese su URL y dirección de correo electrónico, verificando que el dominio sea el mismo en ambos casos. El uso del mismo sistema que usan los sistemas de restablecimiento de contraseña:

  • Genere un hash aleatorio, en parte compuesto por el microtiempo y el dominio actuales
  • Almacenar el hash en una base de datos
  • Envíe al usuario un correo electrónico con un enlace de verificación, donde el parámetro 'id' es el hash
  • Ahora el usuario está verificado (elimine la fila de la base de datos)

Para mayor seguridad, almacene el tiempo en que se generó el hash y luego espere después de una o dos horas.


fuente