Class: LanguageOperator::Utils::SecurePath

Inherits:
Object
  • Object
show all
Defined in:
lib/language_operator/utils/secure_path.rb

Overview

Secure path utilities to prevent path traversal attacks when expanding user home directory paths

Constant Summary collapse

DEFAULT_HOME =

Default fallback directory for untrusted HOME environments

'/tmp'

Class Method Summary collapse

Class Method Details

.expand_home_path(relative_path) ⇒ String

Securely expand a path relative to user home directory Prevents path traversal attacks via malicious HOME environment variable

Parameters:

  • Path relative to home (e.g., '.kube/config')

Returns:

  • Safe absolute path



19
20
21
22
# File 'lib/language_operator/utils/secure_path.rb', line 19

def expand_home_path(relative_path)
  home_dir = secure_home_directory
  File.join(home_dir, relative_path)
end

.secure_home_directoryString

Get user home directory with security validation Falls back to safe default if HOME environment variable is suspicious

Returns:

  • Validated home directory path



28
29
30
31
32
33
34
35
# File 'lib/language_operator/utils/secure_path.rb', line 28

def secure_home_directory
  home = ENV.fetch('HOME', DEFAULT_HOME)

  # Validate HOME is safe to use
  return DEFAULT_HOME unless home_directory_safe?(home)

  home
end