Class: WPScan::VulnerabilityFilter
- Inherits:
-
Object
- Object
- WPScan::VulnerabilityFilter
- Defined in:
- lib/wpscan/vulnerability_filter.rb
Overview
Filter for excluding specific vulnerabilities by UUID
Instance Attribute Summary collapse
-
#excluded_count ⇒ Object
readonly
Returns the value of attribute excluded_count.
-
#excluded_uuids ⇒ Object
readonly
Returns the value of attribute excluded_uuids.
Instance Method Summary collapse
-
#excluding? ⇒ Boolean
Check if any UUIDs are being excluded.
-
#filter(vulnerabilities) ⇒ Array<Vulnerability>
Filter vulnerabilities, removing those with excluded UUIDs.
-
#initialize(uuids = nil) ⇒ VulnerabilityFilter
constructor
A new instance of VulnerabilityFilter.
-
#reset_count! ⇒ Object
Reset the excluded count.
-
#should_exclude?(vulnerability) ⇒ Boolean
Check if a vulnerability should be excluded.
Constructor Details
#initialize(uuids = nil) ⇒ VulnerabilityFilter
Returns a new instance of VulnerabilityFilter.
9 10 11 12 |
# File 'lib/wpscan/vulnerability_filter.rb', line 9 def initialize(uuids = nil) @excluded_uuids = normalize_uuids(uuids) @excluded_count = 0 end |
Instance Attribute Details
#excluded_count ⇒ Object (readonly)
Returns the value of attribute excluded_count.
6 7 8 |
# File 'lib/wpscan/vulnerability_filter.rb', line 6 def excluded_count @excluded_count end |
#excluded_uuids ⇒ Object (readonly)
Returns the value of attribute excluded_uuids.
6 7 8 |
# File 'lib/wpscan/vulnerability_filter.rb', line 6 def excluded_uuids @excluded_uuids end |
Instance Method Details
#excluding? ⇒ Boolean
Check if any UUIDs are being excluded
48 49 50 |
# File 'lib/wpscan/vulnerability_filter.rb', line 48 def excluding? !excluded_uuids.empty? end |
#filter(vulnerabilities) ⇒ Array<Vulnerability>
Filter vulnerabilities, removing those with excluded UUIDs
18 19 20 21 22 23 24 25 26 |
# File 'lib/wpscan/vulnerability_filter.rb', line 18 def filter(vulnerabilities) return vulnerabilities if excluded_uuids.empty? vulnerabilities.reject do |vuln| should_exclude?(vuln).tap do |excluded| @excluded_count += 1 if excluded end end end |
#reset_count! ⇒ Object
Reset the excluded count
41 42 43 |
# File 'lib/wpscan/vulnerability_filter.rb', line 41 def reset_count! @excluded_count = 0 end |
#should_exclude?(vulnerability) ⇒ Boolean
Check if a vulnerability should be excluded
32 33 34 35 36 37 38 |
# File 'lib/wpscan/vulnerability_filter.rb', line 32 def should_exclude?(vulnerability) return false if excluded_uuids.empty? return false unless vulnerability.uuid # Check UUID match (case-insensitive) excluded_uuids.include?(vulnerability.uuid.downcase) end |