Class: GuardrailsRuby::Checks::Encoding

Inherits:
GuardrailsRuby::Check show all
Defined in:
lib/guardrails_ruby/checks/encoding.rb

Instance Attribute Summary

Attributes inherited from GuardrailsRuby::Check

#options

Instance Method Summary collapse

Methods inherited from GuardrailsRuby::Check

check_name, direction, #initialize, lookup

Constructor Details

This class inherits a constructor from GuardrailsRuby::Check

Instance Method Details

#call(text, context: {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/guardrails_ruby/checks/encoding.rb', line 9

def call(text, context: {})
  issues = []

  unless text.valid_encoding?
    issues << "Invalid encoding detected"
  end

  if text.include?("\x00")
    issues << "Null bytes detected"
  end

  # Check for suspicious unicode characters (e.g., zero-width spaces, RTL overrides)
  if text.match?(/[\u200B\u200C\u200D\u2060\u202A-\u202E\uFEFF]/)
    issues << "Suspicious unicode characters detected"
  end

  if issues.any?
    fail! issues.join("; ")
  else
    pass!
  end
end