Sha256: e3cb1e1c064369c31d5bbe29b0f462e480e1ec8430e15c60dfae6f0a8982b1b1

Contents?: true

Size: 1.23 KB

Versions: 16

Compression:

Stored size: 1.23 KB

Contents

class Brakeman::CheckRenderInline < Brakeman::CheckCrossSiteScripting
  Brakeman::Checks.add self

  @description = "Checks for cross site scripting in render calls"

  def run_check
    setup

    tracker.find_call(:target => nil, :method => :render).each do |result|
      check_render result
    end
  end

  def check_render result
    return if duplicate? result
    add_result result

    call = result[:call]

    if node_type? call, :render and
      (call.render_type == :text or call.render_type == :inline)

      render_value = call[2]

      if input = has_immediate_user_input?(render_value)
        warn :result => result,
          :warning_type => "Cross Site Scripting",
          :warning_code => :cross_site_scripting_inline,
          :message => "Unescaped #{friendly_type_of input} rendered inline",
          :code => input.match,
          :confidence => CONFIDENCE[:high]
      elsif input = has_immediate_model?(render_value)
        warn :result => result,
          :warning_type => "Cross Site Scripting",
          :warning_code => :cross_site_scripting_inline,
          :message => "Unescaped model attribute rendered inline",
          :code => input,
          :confidence => CONFIDENCE[:med]
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
brakeman-3.1.1 lib/brakeman/checks/check_render_inline.rb
brakeman-min-3.1.1 lib/brakeman/checks/check_render_inline.rb
brakeman-3.1.0 lib/brakeman/checks/check_render_inline.rb
brakeman-min-3.1.0 lib/brakeman/checks/check_render_inline.rb
brakeman-3.0.5 lib/brakeman/checks/check_render_inline.rb
brakeman-min-3.0.5 lib/brakeman/checks/check_render_inline.rb
brakeman-3.0.4 lib/brakeman/checks/check_render_inline.rb
brakeman-min-3.0.4 lib/brakeman/checks/check_render_inline.rb
brakeman-min-3.0.3 lib/brakeman/checks/check_render_inline.rb
brakeman-3.0.3 lib/brakeman/checks/check_render_inline.rb
brakeman-min-3.0.2 lib/brakeman/checks/check_render_inline.rb
brakeman-3.0.2 lib/brakeman/checks/check_render_inline.rb
brakeman-min-3.0.1 lib/brakeman/checks/check_render_inline.rb
brakeman-3.0.1 lib/brakeman/checks/check_render_inline.rb
brakeman-3.0.0 lib/brakeman/checks/check_render_inline.rb
brakeman-min-3.0.0 lib/brakeman/checks/check_render_inline.rb