Как Google Analytics предотвращает подделку трафика - PullRequest
17 голосов
/ 10 марта 2010

Мы хотим встроить сервис в стиле ajax на ряд наших веб-сайтов, каждый из которых имеет уникальный ключ API. Проблема, которую я вижу, состоит в том, что, поскольку ключ api хранится в файле javascript, пользователь потенциально может взять ключ, подделать ссылку http и сделать миллионы запросов к API под этим ключом API.

Так мне интересно, как Google предотвращает подмену Google Analytics? Поскольку это использует почти ту же идею.

Я также открыт для других идей, по сути, вот процесс.

SiteA -> Пользователь <-> Ajax <-> SiteB

РЕДАКТИРОВАТЬ - есть ли способ защитить API от злоупотребления при вызове через ajax?

Ответы [ 2 ]

12 голосов
/ 10 марта 2010

Я не верю, что существуют такие меры защиты. Подмена трафика является серьезной проблемой для других сервисов Google, таких как Adwords. Например, злоумышленник, который делает ставку на adwords, может генерировать много поддельных кликов для рекламы своих конкурентов, чтобы повысить свои рекламные расходы и, следовательно, цену акций Google. Обратное также верно, люди будут генерировать фальшивые клики на своем сайте, чтобы получить дополнительные деньги от рекламы PayPer Click на своем сайте.

В конце дня хакер может накопить список из 10 000+ анонимных прокси-серверов без особых сложностей, и вы мало что можете с этим поделать. Хакер также может использовать ботнет, некоторые из которых имеют размеры в миллионы. Трафик, генерируемый из ботнета, может показаться легитимным компьютером с легальным Google Cookie, потому что он был захвачен.

Многие прокси-серверы и машины с бонетами перечислены в черных списках реального времени (RBL), например, под управлением http://www.spamhaus.org, и многие легальные IP-адреса также включены в этот список. Есть также прокси, которые не могут быть использованы для спама, но могут быть использованы для мошенничества с кликами, и поэтому их не будет в этом списке.

0 голосов
/ 10 марта 2010

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

...