Something went wrong. Try again.
A micro gem in Ruby for defining a Content Security Policy using a DSL, extracted from Rails
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142# frozen_string_literal: true
require_relative 'csp_maker/csp'require_relative 'csp_maker/version'
require 'securerandom'
module CSPMaker class << self attr_accessor :report_only, :nonce_generator, :nonce_directives
def build_policy(context = nil, &block) raise ArgumentError, "block required" unless block_given?
policy = define_policy(&block) policy.build(context) end
def define_policy(&block) raise ArgumentError, "block required" unless block_given?
policy = ContentSecurityPolicy.new
if block.parameters.empty? policy.instance_eval(&block) else block.call(policy) end
policy end
def default_generator proc { SecureRandom.base64(16) } end
def make_nonce nonce_generator.call end endend