module Arachni::Element::Header::Capabilities::Mutable

Extends {Arachni::Element::Capabilities::Mutable} with {Header}-specific functionality.

@author Tasos “Zapotek” Laskos <tasos.laskos@arachni-scanner.com>

Public Instance Methods

each_mutation( payload, options = {} ) { |elem| ... } click to toggle source

Overrides {Capabilities::Mutable#each_mutation} to handle header-specific limitations.

@param (see Arachni::Element::Capabilities::Mutable#each_mutation) @return (see Arachni::Element::Capabilities::Mutable#each_mutation) @yield (see Arachni::Element::Capabilities::Mutable#each_mutation) @yieldparam (see Arachni::Element::Capabilities::Mutable#each_mutation)

@see Capabilities::Mutable#each_mutation

# File lib/arachni/element/header/capabilities/mutable.rb, line 29
def each_mutation( payload, options = {}, &block )
    options = options.dup
    parameter_names = options.delete( :parameter_names )

    super( payload, options, &block )

    return if !parameter_names

    if !valid_input_name_data?( payload )
        print_debug_level_2 'Payload not supported as input name by' <<
                                " #{audit_id}: #{payload.inspect}"
        return
    end

    elem = self.dup
    elem.affected_input_name = FUZZ_NAME
    elem.inputs = { payload => FUZZ_NAME_VALUE }
    yield elem
end

Private Instance Methods

prepare_mutation_options( options ) click to toggle source
# File lib/arachni/element/header/capabilities/mutable.rb, line 51
def prepare_mutation_options( options )
    options = super( options )
    options.delete( :with_raw_payloads )
    options
end