2

PHP アプリケーションを開発しました。その主な目的は、データベースからデータを取得することです。マシンリクエストを使用してデータベースからすべてのレコードをフェッチしないようにしたい(つまり、人間以外のリクエスト、つまりCURLなどのメカニズムによって行われたリクエストを意味します。通常、CAPTCHAを介してそのようなリクエストを防ぎます。)

検索エンジンだけに私のデータを取得させ、他の誰もデータを取得させないようにするにはどうすればよいでしょうか?

関連:人間以外が生成したリクエストの防止

4

1 に答える 1

0

質問を開くために、リンクをクリックすると、ブラウザが stackOverflow サーバーにリクエストを送信し、このページを要求しました。これは cURL が行うことと同じですが、JavaScript を処理できない点が異なります。繰り返しになりますが、ブラウザーに代わって JavaScript を解析しませんでした。またまた番組でした。

私が本当に強調する必要があったのは、事実上、マシンがユーザー アクティビティを偽造するのを防ぐ方法はないということです。

しかし、興味がある場合は、ここにいくつかのトリックがあります。個人的には、人間が直接関与しない方法を好みます。

  • ページにキャプチャ チャレンジを追加します。
  • ターゲット ユーザーのほとんどが最新のブラウザーを使用する現代人である場合は、Ajax ページの読み込みを使用します。これにより、ほとんどのローエンド スクレイパーが保持されますが、すべてではありません。Google は一部の ajax リクエストを処理できます。ハッシュバングを参照してください。
  • ページにキャプチャ チャレンジを追加します。
  • ターゲット ユーザーのほとんどが最新のブラウザーを使用する現代人である場合は、Ajax ページの読み込みを使用します。これにより、ほとんどのローエンド スクレイパーが保持されますが、すべてではありません。Google は一部の ajax リクエストを処理できます。ハッシュバングを参照してください。
  • ユーザーの IP アドレスをログに記録し、短時間で数千件のヒットを記録したユーザーを探します。
  • サイトにフラッド コントロールを追加します。フォーム送信 (たとえば) が 1 分間に複数回処理されることを禁止できます。
  • フォームにトークンを追加して検証します。これにより、少なくともクロールが 2 段階のプロセスになります。
  • そして、あなたのサイトがデータベースから少量のデータを取得するようにします。たとえば、アプリケーションがカレンダーの場合、すべてのリクエストで 1 年を超える範囲の日付を表示することを禁止できます。

ユーザー エージェントでボットをブロックすることはできません。cURL およびその他のプログラムは、要求を行うときに、ユーザーが指定した別のユーザー エージェントを使用できます。

Google ウェブ マスター セントラルで Googlebot の動作を調整できます。フラッド制御メカニズムと一致するようにしてください。また、ユーザー エージェントに依存しないように Google がアドバイスしていることを覚えておいてください。

于 2013-01-07T05:45:03.123 に答える