Jump to content


Photo

Referencia De Quem Chamou Arquivo


  • Faça o login para participar
4 replies to this topic

#1 Alexx Ares

Alexx Ares

    Doutor

  • Usuários
  • 921 posts
  • Sexo:Masculino
  • Localidade:Santos - SP

Posted 23/12/2007, 10:26

Pessoal,

Procurei, procurei e não achei... talvez alguem saiba e possa me ajudar.

Tenho um script em um site, que chama via file_get_contents() um arquivo em outro servidor que retorna um valor (string).

Simples, porem eu gostaria que esse arquivo que foi chamado, antes de retornar a string, verifique se a solicitação foi REALMENTE do site que eu "permito" que veja a informação.

A idéia inicial era usar um simples $_SERVER[HTTP_REFERRER] mas ele retorna um valor em branco, pois não foi o navegador que chamou o arquivo, mas sim o servidor...

Eu poderia criar por exemplo um código, mas aí quem souber o código vai poder ver o valor do arquivo.... então eu precisava de um dado que comprove realmente que a solicitação partiu do servidor X.

Alguma idéia?

Alguma função mais "complexa" que já me disponibilize um valor como eu necessito?

Nunca usei sockts e essas coisas, acho que está na hora de aprender caso isso resolva meu problema.... :rolleyes:

Valeu!!

:lol: (y)
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.

#2 jfsso

jfsso

    12 Horas

  • Usuários
  • 145 posts
  • Sexo:Não informado
  • Localidade:Tsukuba
  • Interesses:JAVA - PHP - RUBY - PERL - PYTHON - MYSQL

Posted 23/12/2007, 12:10

Que tal verificar o IP de origem? :P
João

#3 Alexx Ares

Alexx Ares

    Doutor

  • Usuários
  • 921 posts
  • Sexo:Masculino
  • Localidade:Santos - SP

Posted 23/12/2007, 13:37

Então, não dá porque, por exemplo, tenho dois sites distintos na locaweb, e ambos tem o mesmo IP, mesmo estando em hospedagens (contratos) completamente diferentes... já fiz o teste. Por isso eu queria o domínio, que é único.

Alguma outra sugestão?

:lol:(y)
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.

#4 jfsso

jfsso

    12 Horas

  • Usuários
  • 145 posts
  • Sexo:Não informado
  • Localidade:Tsukuba
  • Interesses:JAVA - PHP - RUBY - PERL - PYTHON - MYSQL

Posted 23/12/2007, 14:09

Hmm... acho que usando um id unico.

Um metodo legal de fazer essa verificao seria colocar um servicinho de identificacao ;-)

A pagina de origem acessa destino.com/verifica/paginaX
O destino.com retorna ID_UNICO e algum CHECK_SUM se nao houver o CHECK_SUM nos cookies.
A pagina de origem guarda esse ID_UNICO.
O destino.com acessa origem.com/verifica?ID_UNICO (*)
A pagina de origem tem que responder o CHECK_SUM.
A pagina de origem deve colocar esse CHECK_SUM como cookie e acessar a paginaX novamente... :-)
Depois de verificar se o CHECK_SUM e' correto, responder com o conteudo da pagina :-)


* acessando o dominio de volta da pra saber se foi mesmo o site X que esta pedindo ou nao :-D
João

#5 Alexx Ares

Alexx Ares

    Doutor

  • Usuários
  • 921 posts
  • Sexo:Masculino
  • Localidade:Santos - SP

Posted 23/12/2007, 18:53

isso aí é uma boa!
inclusive cada cópia do script no site cliente, que vai acessar esse script em outro servidor, tem um ID unico baseado em algumas variaveis entre elas o dominio.

Mas aí entra mais um detalhe: o script tem livre acesso do dono do site que pode, se quiser sacanear, copiar e instalar em outro servidor (site) e com o mesmo ID acessar como se fosse o cliente original... e isso não pode acontecer.

Por isso que a unica saida que eu vejo é checar o domínio, que será sempre único... mas aí não tem como pq não funciona....

Mas pensei no seguinte, colocar ID unico e, se perceber que houve uma instalação (cópia) indevida, deixar um "script bomba" que apague o sistema inteiro, obviamente protegido com alguma senha ou código para não ir qualquer um lá e rodar o script.... é uma situação grotesca mas a única forma que vejo de proteger esse script (que na verdade é um pequeno sistema "alugado" por mês)...

Bom vou pensando aqui... se alguem tiver mais idéias ou a solução de como pegar o o domínio de onde saiu a solicitação do script, agradeço.

jfsso, valeu pelas dicas.

:lol:(y)


//// APROVEITANDO O TÓPICO....

Tem alguma forma de setar um tempo para a função file_get_contents() e caso passe o tempo retorne false ou algo assim?
Porque caso o site onde está o arquivo a ser consultado esteja fora do ar naquele momento (como aconteceu agora há pouco) simplesmente o script da time out e fatal error.... !

Como faço para "parar a leitura" do file:get_contents()??

Valeu!!

:lol:(y)
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq