diff --git a/lib/rex/random_identifier/generator.rb b/lib/rex/random_identifier/generator.rb index 17763e1..3b9de78 100644 --- a/lib/rex/random_identifier/generator.rb +++ b/lib/rex/random_identifier/generator.rb @@ -427,7 +427,8 @@ def generate(len = nil) # # @return [Boolean] Is identifier forbidden? def forbid_id?(ident = nil) - ident.nil? or @opts[:forbidden].any? {|f| f.match(/^#{ident}$/i) } + return true if ident.nil? + @opts[:forbidden].any? { |f| f.casecmp?(ident) } end end diff --git a/spec/rex/random_identifier/generator_spec.rb b/spec/rex/random_identifier/generator_spec.rb index aed9881..bd58c55 100644 --- a/spec/rex/random_identifier/generator_spec.rb +++ b/spec/rex/random_identifier/generator_spec.rb @@ -182,6 +182,20 @@ { ident: '_', expected: true }, { ident: 'session', expected: true }, ] + }, + { + language: :powershell, + tests: [ + { ident: 'if', expected: true }, + { ident: 'while', expected: true }, + { ident: 'function', expected: true }, + { ident: 'param', expected: true }, + { ident: 'array', expected: true }, + { ident: 'string', expected: true }, + { ident: 'args', expected: true }, + { ident: 'eventargs', expected: true }, + { ident: 'foovar', expected: false }, + ] } ].each do |scenario| context "when the language is #{scenario[:language]}" do