class Cuba::Safe::CSRF::Helper

Attributes

req[R]

Public Class Methods

new(req) click to toggle source
# File lib/cuba/safe/csrf.rb, line 11
def initialize(req)
  @req = req
end

Public Instance Methods

form_tag() click to toggle source
# File lib/cuba/safe/csrf.rb, line 33
def form_tag
  return %Q(<input type="hidden" name="csrf_token" value="#{ token }">)
end
meta_tag() click to toggle source
# File lib/cuba/safe/csrf.rb, line 37
def meta_tag
  return %Q(<meta name="csrf_token" content="#{ token }">)
end
reset!() click to toggle source
# File lib/cuba/safe/csrf.rb, line 19
def reset!
  session.delete(:csrf_token)
end
safe?() click to toggle source
# File lib/cuba/safe/csrf.rb, line 23
def safe?
  return req.get? || req.head? ||
    req.params["csrf_token"] == token ||
    req.env["HTTP_X_CSRF_TOKEN"] == token
end
session() click to toggle source
# File lib/cuba/safe/csrf.rb, line 41
def session
  return req.env["rack.session"]
end
token() click to toggle source
# File lib/cuba/safe/csrf.rb, line 15
def token
  session[:csrf_token] ||= SecureRandom.base64(32)
end
unsafe?() click to toggle source
# File lib/cuba/safe/csrf.rb, line 29
def unsafe?
  return !safe?
end