如何确保GET来自我的网站?

时间:2013-02-04 03:20:19

标签: ruby ajax

我有一个servlet响应我的GET请求'/getdata'

get '/getdata' do
  if request.referrer.to_s == '/my_website_uri'
    erb :content
  else
    reponse = [ 404, {'Content-Type' => 'text/html'}, '<h1>404 - Not Found</h1>' ]
  end
end

我想确定请求是否在我的页面,然后提供数据,否则给出404.

我有上面的代码。如果它包含我的URI,它会检查请求引用者,但我认为任何人都可以模拟这样的请求......有没有更好的方法?

1 个答案:

答案 0 :(得分:3)

是的,referer is trivial to spoof。不,没有一种方法既简单又安全。

您可以控制对该URL的访问,就像您控制对任何其他URL的访问一样:使用您选择的授权和身份验证协议 - 与HTTP basic一样简单(通过SSL!),或者像现代一样OAuth