Pergunta

Vamos dizer que temos uma imagem no Google App Engine e sites são hotlinking-lo. Como posso encontrar os nomes de domínio dos sites?

O meu primeiro pensamento foi:

request.client

e, em seguida, fazer uma pesquisa inversa, mas que não é possível no GAE e levaria muito tempo. Tenho a certeza de que existe uma propriedade que permite-me para obter a URL do site que está solicitando o arquivo (Em algum lugar no pedido?). GAE tem um Request classe mas eu não podia fazê-lo funcionar web2py dentro.

Todas as idéias?

Foi útil?

Solução

Você pode facilmente obter a referência dos cabeçalhos de solicitação. Este referencial podem ser falsificados, mas a maioria das pessoas não spoof-lo e ele já está resolvido.

Não há nenhuma maneira automática para resolver o DNS diferente de resolvê-lo manualmente. Como você disse, a resolução de DNS leva tempo extra e não faz sentido para web2py ou qualquer outra estrutura para fazê-lo.

Outras dicas

Se você está olhando apenas para descobrir os nomes de domínio (para não bloquear os pedidos de executar um script quando o URL da imagem é solicitado), então eles estarão nos logs de solicitação. No administrador coisinha ir para "Logs", selecione "Apenas os pedidos" do drop-down. Se você expandir "Opções" você pode filtrar o nome do arquivo relevante.

Em seguida, expanda cada entrada do pedido de registro, eo referer é ou um hífen, ou a string entre aspas imediatamente após a (ou qualquer outro) código de status 200 e o tamanho transferido. As chances são muito elevadas que nem todos os clientes têm bloqueado ou falsificado o cabeçalho, então você verá os URLs linkadas de.

Você também pode baixar os logs usando o SDK, e busca / processá-los localmente:

appcfg.py --email=whatever request_logs some_filename
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top