0

Facebook ファン ページの投票スクリプトを作成しています。

http://www.facebook.com/apps/application.php?id=115400635147687&v=app_115400635147687

以下を使用して IP を取得しています。

$_SERVER['REMOTE_ADDR']

しかし、問題は、ページを更新するたびに、または ajax 呼び出しを行うたびに、IP が毎回変更されることです。Facebookには多くのIP、プロキシがあると誰かが私に言いました。

基本的に、IPをデータベースに保存する必要があるため、特定のIPのユーザーが投票すると、再度投票できないようにする必要があります。

これに対する解決策または代替手段は何ですか??

4

4 に答える 4

3

IP によるブロックは、実際には信頼できる方法ではありません (同じパブリック IP を共有している人々について考慮する必要があります)。Facebookのアプリなので、ログインしているFacebookアカウントでブロックすることはできないのでしょうか?

于 2010-04-23T07:15:23.047 に答える
2

リンクされたページの上部にあるIPがあなたが扱っているものだと思います。whois を実行すると、次のようになります。

$ whois 69.63.181.250

組織名: Facebook, Inc.
組織ID: THEFA-3
住所: 1601 S. California Ave
都市: パロアルト
州証明: CA
郵便番号: 94304
国: 米国

ネットレンジ: 69.63.176.0 - 69.63.191.255
CIDR: 69.63.176.0/20

これらの IP は、ユーザーではなく Facebook のサーバーに属していることがわかりました。

何が起こっているのかを正しく理解している場合、誰かがあなたのアプリケーションからページをリクエストすると、Facebook のサーバーが代わりにあなたにそれをリクエストします。その場合、ユーザーの IP を取得することはできません。

于 2010-04-23T07:15:38.257 に答える
2

Facebook でファン ページを開発する場合、Facebook サーバーは基本的にプロキシとして機能することに注意してください。つまり、ユーザーのブラウザーが Facebook にページを要求すると、Facebook のサーバーが Web サイトにコンテンツを取得するよう要求します。次に、Facebook サーバーはすべてのリンクと Javascript を書き換えて、コールバックが最初に Facebook サーバーを通過するようにします。

つまり、サーバー上でユーザーの「実際の」IP アドレスが表示されることはありません。Facebook の IP アドレスのみが表示されます。

私が理解しているように、これはプライバシー上の理由から行われます。つまり、ユーザーに関する「識別可能な」情報を取得する前に、アプリケーションが自分のプロファイルにアクセスすることを明示的に許可する必要があります。

于 2010-04-23T07:17:51.450 に答える
1

私はついに完璧な解決策を見つけました。基本的に ajax 投稿を行うと、次を使用してユーザーの ID を取得できます。

$_POST['fb_sig_user']
于 2010-04-23T08:20:21.787 に答える