Como verificar se alguém é dono de um site?

10

Estou tentando pensar em maneiras de, da maneira mais segura possível, verificar se um usuário é dono de um site que ele afirma possuir.

Aqui estão algumas maneiras que eu já vi:

  • Carregar um arquivo HTML com nome obscuro no diretório raiz com o conteúdo fornecido
  • Inclua uma metatag ou outro comentário em algum lugar da fonte da página inicial
  • Envie um email para um endereço @domainwearetryingtovalidate.tldcom um link de verificação
  • Verifique um registro CNAME ou TXT
  • Verificar registros WHOIS
  • Valide fisicamente ligando ou enviando um e-mail para a linha de suporte, atualizando manualmente os registros

E aqui estão os problemas com esses métodos, em ordem:

  • Algumas configurações de sites podem não permitir o simples upload de um arquivo para a raiz
  • O design inadequado do site pode permitir que um usuário desse site adicione ele mesmo essa metatag
  • Sites que fornecem serviços de email tornam isso inútil; tome gmail.compor exemplo
  • Isso é muito complexo para a maioria dos proprietários de sites pequenos descobrir como fazer
  • Aqueles são públicos; qualquer um pode reivindicar ser quem quer que seja. Sem mencionar na maioria das vezes imprecisos.
  • Huuuuge perda de tempo

Existem outras maneiras de verificar se um usuário do seu site possui um site específico? Dos métodos listados, quais são os melhores e os piores? Eu os ordenei do melhor para o pior na minha opinião, mas gostaria de ver o que os outros pensam também.

Eu planejo implementar um ou mais desses em PHP.

Ciclone
fonte
3
Esta é certamente uma questão de programação. Se fosse para webmasters, eu colocaria lá.
Para uma solução automatizada, você está atento ao que listou. Outras grandes empresas (ou seja, Google) usam uma das quatro primeiras opções. Eu acho incrivelmente irregular para um usuário não conseguir fazer um dos quatro primeiros.
11
@ rlb.usa Seria uma pergunta para webmasters se eu perguntasse como adicionar um registro CNAME para o meu domínio para verificar que eu possuí-lo para um determinado serviço
2
Eu acho que o primeiro problema que você precisa resolver é decidir: o que significa "possuir" um site? Ser administrador? Tendo acesso ao sistema de arquivos? Ter um direito de propriedade legal? Ter um dever de manutenção por meio de contrato escrito ou falado? Pagando as contas de hospedagem? Pagando as contas do domínio? Pagando os designers?
Lightness Races em órbita
11
@ Cyclone: Estou trabalhando para você de graça, pelo fato de estar perdendo completamente meu tempo contribuindo para essa pergunta.
Lightness Races em órbita

Respostas:

9

Eu definitivamente acho

  • Carregar um arquivo html com nome obscuro no diretório raiz com o conteúdo fornecido

é o melhor caminho a percorrer. Eu realmente tive que fazer isso uma vez. E eu não acho que muitas configurações de sites o impeçam de fazer isso.

Se você está realmente preocupado com isso, por que não permitir todas as opções (seguras)?


Em relação ao seu comentário:

Sim, mas com sistemas MVC (como codeigniter), pode ser um aborrecimento descobrir como acessar um arquivo físico que não faz parte do sistema principal

Nesses casos raros , deixe esses administradores irem com os registros CNAME / TXT ou chame-os :-)

aioobe
fonte
11
Certo .. isso é realmente onde eu tinha que fazer isso ;-)
2
Os dois primeiros que eu listei eram do google webmaster tools
@ Cyclone, eu concordo com você que o primeiro parece mais seguro que o segundo.
O que é péssimo é que você acaba com um arquivo de nome obscuro por serviço, sobrecarregando o diretório raiz. Não é uma falha terrível, mas existem alternativas mais limpas.
Bobby Jack
Hum ... acho que você colocou o arquivo com o nome obscuro temporariamente durante o processo de verificação.
aioobe
7

Carregar um arquivo com nome obscuro é o caminho a percorrer.

Você escreveu a desvantagem é que eles podem não ter permissão para carregar um arquivo na raiz. Bem, nesse caso, significa que eles não possuem o site, e é isso que você está tentando descobrir.

Laurent
fonte
Exatamente. Você não precisa de acesso "root" ao servidor, ou seja, fora da pasta htmlou www.
Chris Laplante
Eu não quero dizer permitido em que as regras de reescrita pode tornar difícil ou complexa para carregar o arquivo
@ Cyclone, é verdade, mas acho que é muito raro proibir o acesso a um arquivo HTML físico.
Sim, mas com sistemas de MVC (como codeigniter), pode ser um aborrecimento para descobrir como acessar um arquivo físico que não é uma parte do sistema principal
Acho que o IC ainda permite o acesso a arquivos HTML físicos. Mas, por precaução, você também pode permitir o método metatag, para que seus usuários não fiquem presos no caso de haver um problema com o arquivo .htaccess ou a estrutura MVC.
1

Eu recomendaria usar a meta tag ...

  • Incluir uma metatag

fonte
0

Pessoalmente, eu iria com a opção de email automatizado.

Peça ao usuário para inserir seu URL e endereço de email, verificando se o domínio é o mesmo nos dois casos. O uso do mesmo sistema que os sistemas de redefinição de senha usam:

  • Gere um hash aleatório, parcialmente composto pelo microtime e domínio atuais
  • Armazenar o hash em um banco de dados
  • Envie um email ao usuário com um link de verificação, onde o parâmetro 'id' é o hash
  • Agora o usuário é verificado (exclua a linha do banco de dados)

Para aumentar a segurança, armazene o tempo em que o hash foi gerado e espere o tempo limite após uma ou duas horas.


fonte