2009-08-08 7 views
2

Google App Engineに画像があり、サイトがホットリンクしているとします。 サイトのドメイン名はどのようにして見つけることができますか?web2pyを使用してGoogle App Engineでホットリンクしているサイトのドメイン名を見つける

request.client

して、逆引き参照を行うが、それはGAEでは不可能だということと、多くの時間がかかるだろう。

私が最初に考えたのはでした。 私は、ファイル (要求のどこかに?)を要求しているサイトのURLを取得できるプロパティがあることは確かです。 GAEはRequest classですが、web2pyで動作させることができませんでした。

アイデア?

答えて

2

リクエストヘッダーから簡単に参照元を取得できます。このリファラは偽装することができますが、ほとんどの人は偽装していないので、すでに解決されています。

手動で解決する以外に、DNSを自動的に解決する方法はありません。あなたが言ったように、DNS解決には余分な時間がかかり、Web2Pyや他のフレームワークではそれを行うことができません。

+0

私がリクエストヘッダとリファラが、web2pyの –

+0

のための情報なしのために検索してきた「ほとんどの人はそれを偽装していません" - 特にクライアントによって偽装される可能性がありますが、イメージを直接リンクしているサーバーではないと思いますか? JavaScriptがリクエストのhttp-refererを指定できない限り。クライアントが何が起こっているのかわからない、または気にする可能性はありません。 –

+0

request.env.http_referrer – Unknown

1

(イメージURLが要求されたときにスクリプトを実行してリクエストをブロックしないように)ドメイン名を探しているのであれば、それらはリクエストログに記録されます。管理者のところでは、 "Logs"に行き、ドロップダウンから "Requests only"を選択します。 [オプション]を展開すると、関連するファイル名をフィルタリングできます。

次に、各要求ログエントリを展開します。リファラは、ハイフンまたは200(または何でも)のステータスコードと転送されたサイズの直後に引用符で囲まれた文字列です。すべてのクライアントがヘッダーをブロックまたはスプーフィングしているわけではない可能性が非常に高いので、リンクされたURLが表示されます。

また、SDKを使用してログをダウンロードすることができ、およびローカル検索/プロセスそれら:

appcfg.py --email=whatever request_logs some_filename 
関連する問題