カスタム HTTP ヘッダー (たとえばX-Foobar-Validity-Status: valid
) を実装し、before_filter
.
class YourController < ApplicationController
before_filter :check_header
def check_header
unless request.headers['X-Foobar-Validity-Status'] == "valid"
render json: {"error" => "You are an evil attacker. Go away"}
end
end
end
ただし、これは悪い考えだと思います。
- 攻撃者は、jQuery を使用していても、HTTP 要求のパケット ダンプを読み取り、ヘッダーを追加できます。
jQuery.ajax
headers オプションを参照してください。
- 独自のヘッダーを使用する代わりに、
User-Agent
この目的で使用します。
代わりに、protect_from_forgery
レールのメカニズムを使用することをお勧めします。それはあなたの人生をより簡単にし、より安全にします。アプリで http リクエストによって認証トークンをフェッチし、リクエストとともに送り返すだけです。これにより、侵入者を締め出すことができます。