2011-12-15 49 views
0

Railsコントローラでリクエストの呼び出し元のURLを調べようとしています。Railsで呼び出し元のURLを取得する

私はrequest.env['HTTP_REFERER']を使用しようとしましたが、時にはnullです。何か案は?

ありがとうございます。

+0

本当にバグですか?私は、ユーザーがブックマークからページを開くか、そのアドレスを入力すると、refererがnullになることがあります。 – bassneck

答えて

0

あなただけの、時には何も要求したURLが存在しないという事実に対処する必要があるとしています。コメント欄に記載されているように、ユーザーがURLを入力した場合、またはブックマークの場合は、参照元フィールドは空になります。そしてそれらはちょうど正当な、毎日の場合です。

そのフィールドには依存しないでください。

+0

ご協力いただきありがとうございます。私は呼び出し元のURLを知ることができる他の方法はありますか、私は特定のURLから来たら要求を拒否する必要がありますそれはRailsで可能ですか? – Nonos

+0

URLをブロックする場合は、代わりにIPアドレスをブロックしないでください。 IPアドレスは常に利用可能です。これは完全に信頼できる方法でもありません。問題のURLがIPを変更できるためですが、URL自体をブロックするよりも優れています。 –

+0

私はIPアドレスを使うことができますが、特定のURLから来た場合にのみ要求を受け入れる必要があるという単純な問題を解決しようとしています。私はホストアドレスを取得するために以下を使用しました:host = request.env ['REMOTE_HOST'] もしhost.blank? host = Resolv.new.getname(request.env ['REMOTE_ADDR']) end request.env ['REMOTE_ADDR']の値を空白にすることができるか、設定する必要があるのか​​調べることができませんでした – Nonos

関連する問題