Encontrar o nome de domínio de um site que está hotlinking no Google app engine usando web2py
-
12-09-2019 - |
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?
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