5

こんにちは私は非常に奇妙な問題を経験しています。
Facebookに自分のWebサイトへのリンクを投稿するたびに、それらはForbiddenとして表示されます。
サイト自体はうまく機能していて、他のサイトにリンクしているときにこれを見たことがありません。
これはサーバーの設定ミスでしょうか?どこを見ればいいのか考えてみませんか?

ここにいくつかの情報があります:
私はWHM11.25.0を実行している専用サーバーを持っています
私はcPanel11.25.0を使用してここでホストされている2つのサイトを持っています

エラーメッセージ:

禁断

このサーバーで/blog/deepwater-horizo​​n-11/にアクセスする権限がありません。

さらに、ErrorDocumentを使用してリクエストを処理しようとしたときに、404NotFoundエラーが発生しました。


Apache / 2.2.14(Unix)mod_ssl / 2.2.14 OpenSSL / 0.9.8i DAV / 2 mod_auth_passthrough / 2.1 mod_bwlimited / 1.4 FrontPage / 5.0.2.2635サーバー(www.offshoreinjuries.comポート80)

更新:
役立つ場合は、サンプルリンクを次に示します。(リンクされたページに直接アクセスすると正常に機能することに注意してください)
http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.offshoreinjuries.com%2Fblog%2Fdeepwater-horizo​​n-11%2F&h=834ea

更新と回答:
問題を見つけて、以下に完全な回答を追加しました。

4

2 に答える 2

6

HTTP_REFERERを読み取り、Facebookからの着信リンクを拒否するルールがどこかにある必要があります。真剣に。これは、行間で発生することです。

リファラーなし

telnet www.offshoreinjuries.com 80
HEAD /blog/deepwater-horizon-11/ HTTP/1.1
Host: www.offshoreinjuries.com

    HTTP/1.1 200 OK
    Date: Fri, 28 May 2010 09:19:45 GMT
    Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    X-Powered-By: PHP/5.2.12
    X-Pingback: http://www.offshoreinjuries.com/blog/xmlrpc.php
    Content-Type: text/html; charset=UTF-8

200 OK、いいね。

Facebookリファラー

telnet www.offshoreinjuries.com 80
HEAD /blog/deepwater-horizon-11/ HTTP/1.1
Host: www.offshoreinjuries.com
Referer: http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.offshoreinjuries.com%2Fblog%2Fdeepwater-horizon-11%2F&h=834ea

    HTTP/1.1 403 Forbidden
    Date: Fri, 28 May 2010 09:21:04 GMT
    Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    Content-Type: text/html; charset=iso-8859-1

403禁止、悪い。

その他のリファラー

telnet www.offshoreinjuries.com 80
HEAD /blog/deepwater-horizon-11/ HTTP/1.1
Host: www.offshoreinjuries.com
Referer: http://alvaro.es/

    HTTP/1.1 200 OK
    Date: Fri, 28 May 2010 09:20:36 GMT
    Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    X-Powered-By: PHP/5.2.12
    X-Pingback: http://www.offshoreinjuries.com/blog/xmlrpc.php
    Content-Type: text/html; charset=UTF-8

200もう一度OK。

サーバーはFacebookからの訪問者を積極的に拒否しています。

于 2010-05-28T09:23:55.207 に答える
2

私はついにこの振る舞いの根底に到達することができました。
私のホストであるHostGatorのデフォルトのmod_security設定には、ホワイトリストとブラックリストのセットが含まれています。これらを調べたところ、.facebook.com/l.phpブラックリストに載っていました。
l.phpは、Facebookを離れることを警告するラッパーページです。これは簡単に悪用される可能性があるため、私が理解しているように、HostGatorは基本的にすべてのアウトバウンドFacebookリンクをブラックリストに登録することを選択しました。

mod_securityブラックリストから削除することで問題を修正し.facebook.com/l.phpましたが、WHMでシングルクリックするだけでmod_security設定をデフォルト(HostGator構成に対して)にリセットすることもできました。

于 2010-05-29T17:52:21.870 に答える