Поиск доменного имени сайта, который имеет хотлинкинг в движке приложений Google, используя web2py - PullRequest
2 голосов
/ 08 августа 2009

Допустим, у нас есть изображение в Google App Engine, и сайты ссылаются на него. Как я могу найти доменные имена сайтов?

Моя первая мысль была:

request.client

, а затем выполните обратный поиск, но это невозможно в GAE и займет много времени. Я уверен, что есть свойство, которое позволяет мне получить URL сайта, запрашивающего файл (где-то в запросе?). У GAE есть класс запросов , но я не могу заставить его работать внутри web2py.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 08 августа 2009

Вы можете легко получить реферера из заголовка запроса. Этот реферер может быть подделан, но большинство людей не подделывают его, и он уже разрешен.

Не существует автоматического способа разрешения DNS, кроме как вручную. Как вы сказали, разрешение DNS требует дополнительного времени, и Web2Py или любой другой среде не имеет смысла это делать.

1 голос
/ 08 августа 2009

Если вы просто хотите узнать доменные имена (чтобы не блокировать запросы путем запуска сценария при запросе URL-адреса изображения), то они будут в журналах запросов. В админке зайдите в «Журналы», выберите «Только запросы» из выпадающего списка. Если вы развернете «Параметры», вы сможете выполнить фильтрацию по соответствующему имени файла.

Затем разверните каждую запись в журнале запросов, и реферер будет либо дефисом, либо строкой в ​​кавычках сразу после кода состояния 200 (или любого другого) и переданного размера. Вероятность того, что не все клиенты заблокировали или подделали заголовок, высока, поэтому вы увидите URL-адреса, ссылки на которые есть.

Вы также можете скачать журналы, используя SDK, и искать / обрабатывать их локально:

appcfg.py --email=whatever request_logs some_filename
...