Sha256: e7c53977cfc47cd8a4b196446722e224f85aa8c04a89812bddd123d6bcaad09b

Contents?: true

Size: 1.61 KB

Versions: 43

Compression:

Stored size: 1.61 KB

Contents

# frozen_string_literal: true

require 'cms_scanner/finders/finder/smart_url_checker/findings'

module CMSScanner
  module Finders
    class Finder
      # Smart URL Checker
      # Typically used when some URLs are potentially in the homepage. If they are found
      # in it, they will be checked in the #passive (like a browser/client would do when loading the page).
      # Otherwise they will be checked in the #aggressive
      module SmartURLChecker
        # @param [ Array<String> ] urls
        # @param [ Hash ] opts
        #
        # @return []
        def process_urls(_urls, _opts = {})
          raise NotImplementedError
        end

        # @param [ Hash ] opts
        #
        # @return [ Array<Finding> ]
        def passive(opts = {})
          process_urls(passive_urls(opts), opts)
        end

        # @param [ Hash ] opts
        #
        # @return [ Array<String> ]
        def passive_urls(_opts = {})
          target.in_scope_uris(target.homepage_res, passive_urls_xpath).map(&:to_s)
        end

        # @return [ String ]
        def passive_urls_xpath
          raise NotImplementedError
        end

        # @param [ Hash ] opts
        #
        # @return [ Array<Finding> ]
        def aggressive(opts = {})
          # To avoid scanning the same twice
          urls = aggressive_urls(opts)
          urls -= passive_urls(opts) if opts[:mode] == :mixed

          process_urls(urls, opts)
        end

        # @param [ Hash ] opts
        #
        # @return [ Array<String> ]
        def aggressive_urls(_opts = {})
          raise NotImplementedError
        end
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 3 rubygems

Version Path
cms_scanner-0.15.0 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.14.3 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.14.2 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.9 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.8 lib/cms_scanner/finders/finder/smart_url_checker.rb
new_cms_scanner-0.13.7 lib/cms_scanner/finders/finder/smart_url_checker.rb
k8s_cms_scanner-0.1.0 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.7 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.6 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.5 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.4 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.3 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.2 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.1 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.13.0 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.12.2 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.12.1 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.12.0 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.11.0 lib/cms_scanner/finders/finder/smart_url_checker.rb
cms_scanner-0.10.1 lib/cms_scanner/finders/finder/smart_url_checker.rb