web-dev-qa-db-ja.com

アプリが検索エンジンをハイジャックするのを防ぐテクニック

私は大規模な音楽コンテンツデータベースのあるサイトで作業しており、最近、評判を少し高めたいと考えているアプリ開発者が、データベースに完全に便乗するアプリを立ち上げました。ユーザーはアプリ内のトラックを検索します。アプリは検索ページにリクエストを送信し、結果をスクレイピングして、上位の結果をユーザーに返します。ここに私が試したものがいくつかあります:

  • アプリのユーザーエージェントに対して444を返します(ただし、正当なブラウザー文字列に変更しました)。
  • 検索ページでリファラーを検出し、リファラーが見つからない場合は404を返します(ただし、リファラーを偽装するのは簡単です)。

私が考えたアイデアの1つは、検索ボックスと共に任意のページに検索クエリと共に送信されるトークンの一種であり、検索結果はこのトークンを検証し、無効な場合は404を返します。これを行う実証済みのテクニックはありますかものの種類?または、このデータ盗難を防ぐために私ができることはありますか?彼は私たちのデータを完全に無差別に盗み、私たちのサイトを不自由にしている!

ちなみに、Djangoを使用しているのは、私に役立つ何かがそこに組み込まれている場合のためです。

3
benwad

あなたのトークンのアイデアはうまくいくでしょう。定期的に変更して、難しくすることもできます。

検索フォームのパラメーターを変更することもできます。検索語にs=の代わりにq=の使用を開始します。そのため、この開発者はこれらの変更に遅れずについていく必要があります。

Captchaを実装し、ユーザーが人間であることを証明しない限り検索結果を表示しないこともできます。 Googleはちょうどチェックボックスであるrecaptchaのバージョンを開始しました: http://googleonlinesecurity.blogspot.hu/2014/12/are-you-robot-introducing-no-captcha.html

1