class Pentest::SqlProxy
Public Class Methods
disable!(handler)
click to toggle source
# File lib/pentest/sql_proxy.rb, line 29 def self.disable!(handler) Arproxy.configure do |config| config.adapter_class.class_eval do alias_method :exec_query, :exec_query_original end end Arproxy.proxy_chain.head.unregister_handler(handler) Arproxy.disable! end
enable!(handler)
click to toggle source
# File lib/pentest/sql_proxy.rb, line 8 def self.enable!(handler) Arproxy.configure do |config| config.use self config.adapter_class.class_eval do attr_accessor :handler @@handler = handler def exec_query_proxy(*args) sql, = args unless @@handler.nil? @@handler.call(sql) end self.exec_query_original(*args) end alias_method :exec_query_original, :exec_query alias_method :exec_query, :exec_query_proxy end end Arproxy.enable! Arproxy.proxy_chain.head.register_handler(handler) end
new()
click to toggle source
# File lib/pentest/sql_proxy.rb, line 39 def initialize @handler = nil end
Public Instance Methods
exec_query_proxy(*args)
click to toggle source
# File lib/pentest/sql_proxy.rb, line 14 def exec_query_proxy(*args) sql, = args unless @@handler.nil? @@handler.call(sql) end self.exec_query_original(*args) end
execute(*args)
click to toggle source
Calls superclass method
# File lib/pentest/sql_proxy.rb, line 51 def execute(*args) sql, = args unless @handler.nil? @handler.call(sql) end super(*args) end
register_handler(handler)
click to toggle source
# File lib/pentest/sql_proxy.rb, line 43 def register_handler(handler) @handler = handler end
unregister_handler(handler)
click to toggle source
# File lib/pentest/sql_proxy.rb, line 47 def unregister_handler(handler) @handler = nil end