1

ユーザーが入力する前に認証と電子メール検証を必要とするソーシャルネットワークがあります。中に入ると、ユーザーは友達のコンテンツしか見ることができません。たとえそれが聞こえなくても、それは実際には本当に単純です。フィルタ前の認証は次のとおりです。

  def authenticate
    if logged_in?
      redirect_to authentication_url if current_user.account_disabled
    else
      redirect_to root_url
    end
  end

私が抱えている問題は、Facebookスクレーパーを入れて、いくつかの動的ページからメタタグを取得することです。Facebookのユーザーエージェントを非公開ページに入れることを許可できると読みrobots.txtましたが、ファイルで保護されているページの場合はそうではありませんか?私はスクレーパーの経験がありませんが、私のサイトの動的な情報をスクレイプするには、確かにCookieと有効なアカウントが必要ですか?スクレーパーを入れるメソッドを実際にどのように書くか、どこに書くかさえわかりません。

スクレーパー用のトークンを生成し、SecureRandom.urlsafe_base64通常のユーザーがアクセスできないはずの空白のページ(メタデータを含む)で例外を作成することについては説明しますが、技術的には安全ではありません。右側のJSファイル(Open GraphアクションPOSTのURL参照用)とメタタグで、保護されたユーザーデータを取得できます。この考えは正しいとは思えません...

何か案は?

4

2 に答える 2

2

ユーザーエージェントは簡単に偽造されます。ユーザーエージェントのみに基づいてアクセスを許可するように注意してください。

代わりに、APIを介してスクレイプを許可する方法があると思います。

于 2016-07-07T18:25:04.050 に答える
1

コンテンツに各ユーザーに表示される一意のURL(通常はログインフィルターで保護されている)がある限り、ソースIPまたはユーザーエージェントをFacebookスクレーパーと一致させることでアクセスを許可できます。

ただし、ほとんどのソーシャルサイトと同様に、同じURLを使用して、現在ログインしているユーザー向けにレンダリングされたカスタマイズされたコンテンツを返す可能性があります。これは本質的にスクレイプ不可能です-ユーザーごとに異なるバージョンの「/profile」があるためです。

于 2013-02-07T21:17:54.390 に答える