2010-09-27 27 views
8

Tengo un área para miembros, donde pueden agregar sus dominios y se mostrará en la página de perfil ... pero ahora quiero agregar un proceso de verificación, al igual que google web-masters. donde necesitan subir un cierto archivo y así ... por favor díganos ¿cuál es la mejor manera de hacer esto?verificando un dominio usando php

Gracias :)

Respuesta

8
  1. Genera un token para cada dominio (sha-1 de dominio o más), guárdalo en tu base de datos o lo que sea.
  2. Genera un archivo de texto que contiene el token a petición del usuario.
  3. Pida al usuario que le informe para sondear o sondear de vez en cuando para verificar la URL. Esto se puede hacer fácilmente mediante file_get_contents en PHP si fopen_wrappers está habilitado.
  4. El token obviamente se compara con el token en su base de datos para asegurarse de que no era solo un archivo aleatorio presente en un dominio aleatorio.
  5. Podría ser una buena idea verificar en algún intervalo de tiempo si el archivo es sigue ahí, para evitar que alguien venda el dominio pero mantenga el control

No es realmente arte negro, ya que podemos suponer que el usuario tiene acceso a su dominio una vez que el usuario puede cumplir cualquier solicitud específica que pruebe el acceso. No hay una manera real de engañar al sistema, excepto hacer magia de DNS, o ingresar al servidor web que se ejecuta en el dominio, que de todos modos está fuera de tu control.

0

En realidad, sólo la creación de un MD5-cadena para el nombre de dominio, dejando que el propietario del sitio que puso en un meta-etiqueta para que pueda comprobar que eso noté ningún problema ...

3

No estoy seguro si esa es la mejor manera , pero creo que Google hace algo como esto:

  1. nombre de dominio del usuario get (por ejemplo, "http://example.com")
  2. generar único código y almacenar en db
  3. decirle al usuario dónde cargar el código (por ejemplo, algo como "/verificación.txt")
  4. después de la confirmación, realice una solicitud HTTP para el código ("http://example.com/verification .txt ") del propio servidor al servidor del usuario
  5. compara el código recibido con el código en el PP

Es posible que desee para generar consistentemente el mismo código para el mismo dominio.

+2

.. o, de forma alternativa, es posible que desee generar un código consitently _distinto_ para un dominio (o consistentemente el mismo para un combo de dominio + usuario.), ya que otros usuarios podrían obtener más credenciales/derechos con un dominio verificado, y es posible que no desee que ningún usuario antiguo pueda acceder a esos datos si el propietario real se ha registrado. Depende en gran medida de las circunstancias de la aplicación que está verificando. – Wrikken

1

Esta pregunta es intrincada. Creo que necesitas deletrear lo que estás buscando un poco mejor.

editar # 1:

Generar un MD5 y darle al usuario, diles que lo puso en su dominio y proporcionar una dirección URL a donde está. Esto podría estar en un archivo txt o cualquier cosa.

A continuación, lea ese archivo y compruebe si la cadena md5 existe allí.

En realidad, me gustaría encontrar algo ligeramente diferente a un md5. Quizás tres de ellos, para que reduzcas la posibilidad de que lo encuentren en algún otro dominio y luego te den esa URL.

Esto todavía se puede suplantar a menos que clavar limitaciones, como tiene que ser un archivo de texto, el archivo sólo debe contener el MD5 ... etc

Ahora puedo escribir en un MD5 pero no quiere decir que controlo este sitio web:

MD5 ("i engañado usted") = "0afb2d659b709f8ad499f4b87d9162f0"

Pero si me entregó la URL a esta respuesta, el sistema puede ser accidental que tengo aquí de administración.

Recomiendo crear un archivo y hacer que carguen el archivo y le den la URL. Pero incluso eso no necesariamente funcionará porque hay muchos sitios donde puedes subir algo.

¿Tal vez si se trata de un archivo codificado en php que se puede ejecutar? Esa es una falla de seguridad porque no sé si subiría el archivo PHP de cualquiera. Normalmente, si no tienes administrador, nadie te va a dejar subir un archivo php que funcione.

Es posible que desee crear un script de PHP para el hogar, pero va a ser malo. La gente no lo usaría.

1

Otra forma en que se podría hacer es:

  1. obtener el nombre de dominio
  2. Generar un código/cadena aleatoria.
  3. Dolor en su base de datos
  4. Haga una metaetiqueta y el código aleatorio en el contenido.
  5. Usar el archivo obtener los contenidos de la página de índice del sitio web.
  6. Luego busque en la página la metaetiqueta con el código ordenado en la base de datos.
  7. Si la declaración es correcta o infructuosa.

La etiqueta meta debe tener este aspecto:

<meta name="site-verification" content="1010101010101010101010101010101010101010" /> 
Cuestiones relacionadas