3

現在、Google マップにオーバーレイされた地元のレストランのレビュー/おすすめを処理するサービスに取り組んでいます。基本的には Yelp ですが、特定のニッチに限定されています。とにかく、すべての場所を読み込んで一度にレビューする必要がないため、最終的に jQuery と AJAX 呼び出しを使用するようになりました。

私が持っている質問は次のとおりです。他の人がサーバー上の ajax スクリプトからデータを「スクレイピング」するのを防ぐにはどうすればよいですか?

ユーザーがアプリケーションを使用するためにログインする必要がないという点で、メインの地図/位置情報機能は公開する必要があるため、単純にスクレイピングが困難になる可能性があります。AJAX のベテランの 1 人が、より良いアイデアや、まだ見つけられていない「ベスト プラクティス」ドキュメントの方向性を教えてくれることを願っています。

これまでのところ、私が思いついたのは次のとおりです。

  • ユーザー向けのスクリプトはサーバー上で有効期間の短いセッションを開き、AJAX 呼び出しはアクティブなセッションなしでは実行されません。
  • アプリケーション コードと共に何らかのアクセス キーを送信し、すべての AJAX 呼び出しでそれを要求します。しかし、これを回避するのが簡単ではない方法でこれを最適に実装する方法がわかりません。
4

2 に答える 2

5

AJAX Web サービスを完全に保護することはできません。データを壊してソース コードを難読化したとしても、パケット スニファーまたはデバッグ プロキシを起動し、それを見つけ出し、そこからスクレイピングするのは簡単です。

私がすることはまさにあなたが提案することです...サイトでアクティブなセッションを持つユーザーだけが電話をかけることができます。そこから、リクエストを抑制します。

忙しい通常のユーザーでさえ、1 分間にほんの一握りのリクエストしか作成しません。ログを分析して、適切な数値を把握できます。サービスを 1 分あたり 20 回の呼び出しに制限したとしても、その種の制限により、すべてのコンテンツを複製したい人にとってはまったく役に立たなくなります.

セッションデータだけに制限しないでください... IPアドレスに注意してください。リクエストを開始して、いつでも新しいセッションを取得することは完全に可能です。ログを定期的にチェックして、何かが通過しているかどうかを確認し、それに応じて戦略を調整してください。

最後に、コンテンツを定期的に検索します。Google は、著作権侵害者を見つけるための優れたツールです。GPS 座標などの特定のデータを使用する場合、実際には、座標のノイズ領域に特定の値で座標に透かしを入れることができます。

于 2012-11-29T16:39:52.307 に答える
1

私が聞いたところでは、あなたはサービスの JavaScript 側を保護したいと考えています。JavaScript は本質的に完全にオープン ソースであるため (パブリック ドメインではありませんが)、これは不可能です。

Google は、空白とタブを削除してスクリプトを圧縮できるGoogle Closure というツールを提供しています。また、変数名と関数名をランダムな文字に置き換えることで、ドキュメントを難読化することもできます。カスタマイズ可能なので、あなたが望むものを伝えることができます。私が知る限り、Google はそれを自社の Web サイトに使用しています (ページのソースを見ると明らかです)。

于 2012-11-29T16:39:07.130 に答える