Class: Redirect
- Inherits:
-
BetterCap::Proxy::HTTP::Module
- Object
- BetterCap::Pluggable
- BetterCap::Proxy::HTTP::Module
- Redirect
- Defined in:
- lib/bettercap/proxy/http/modules/redirect.rb
Overview
This proxy module will redirect to a custom URL.
Constant Summary collapse
- @@url =
URL to redirect the target(s) to.
nil
- @@filter =
Optional regex filter for redirections.
nil
Class Method Summary collapse
-
.on_options(opts) ⇒ Object
Add custom command line arguments to the
opts
OptionParser instance.
Instance Method Summary collapse
-
#initialize ⇒ Redirect
constructor
Create an instance of this module and raise a BetterCap::Error if command line arguments weren’t correctly specified.
- #on_request(request, response) ⇒ Object
Methods inherited from BetterCap::Proxy::HTTP::Module
available, #enabled?, is_builtin?, load, modules, #on_pre_request, register_modules, register_options
Methods inherited from BetterCap::Pluggable
Constructor Details
#initialize ⇒ Redirect
Create an instance of this module and raise a BetterCap::Error if command line arguments weren’t correctly specified.
46 47 48 49 |
# File 'lib/bettercap/proxy/http/modules/redirect.rb', line 46 def initialize raise BetterCap::Error, "No --redirect-url option specified for the proxy module." if @@url.nil? raise BetterCap::Error, "Invalid URL specified." unless @@url =~ /\A#{URI::regexp}\z/ end |
Class Method Details
.on_options(opts) ⇒ Object
Add custom command line arguments to the opts
OptionParser instance.
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/bettercap/proxy/http/modules/redirect.rb', line 30 def self.(opts) opts.separator "" opts.separator "Redirect Proxy Module Options:" opts.separator "" opts.on( '--redirect-url URL', 'URL to redirect the target(s) to.' ) do |v| @@url = v end opts.on( '--redirect-filter EXPRESSION', 'Optional regex filter for redirections.' ) do |v| @@filter = Regexp.new(v) end end |
Instance Method Details
#on_request(request, response) ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/bettercap/proxy/http/modules/redirect.rb', line 51 def on_request( request, response ) if response.content_type =~ /^text\/html.*/ and !@@url.include?(request.host) if @@filter.nil? or @@filter.match(request.to_url) BetterCap::Logger.info "[#{'REDIRECT'.green}] Redirecting #{request.to_url} to #{@@url} ..." response.redirect!(@@url) end end end |