sanitizer
¶
AppleScript security sanitizer module.
This module provides security validation for AppleScript code to prevent command injection and other security vulnerabilities.
AppleScriptSanitizationError
¶
Bases: Exception
Exception raised when AppleScript code fails security validation.
Initialize the sanitization error.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
message
|
str
|
Error message describing the security violation |
required |
dangerous_pattern
|
str | None
|
The specific pattern that triggered the error |
None
|
Source code in src/services/apple/sanitizer.py
AppleScriptSanitizer
¶
Security-focused AppleScript code sanitizer and validator.
This class provides methods to sanitize and validate AppleScript code to prevent command injection and other security vulnerabilities. Implements defense-in-depth through multiple validation layers.
Initialize the AppleScript sanitizer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
logger
|
Logger | None
|
Optional logger instance for security event logging |
None
|
Source code in src/services/apple/sanitizer.py
sanitize_string
¶
Sanitize a string value for safe use in AppleScript.
Escapes special characters that could be used for injection attacks.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
Any
|
The string value to sanitize |
required |
Returns:
| Type | Description |
|---|---|
str
|
The sanitized string safe for AppleScript execution |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the input value is None or not a string |
Source code in src/services/apple/sanitizer.py
validate_script_code
¶
Validate AppleScript code for security vulnerabilities.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
script_code
|
str | None
|
The AppleScript code to validate |
required |
allow_music_app
|
bool
|
Kept for backward compatibility. No reserved words contain "music", so this parameter was never effective. |
True
|
Raises:
| Type | Description |
|---|---|
AppleScriptSanitizationError
|
If dangerous patterns are detected |
ValueError
|
If script_code is invalid |
Source code in src/services/apple/sanitizer.py
create_safe_command
¶
Create a safe osascript command with validated inputs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
script_code
|
str
|
The AppleScript code to execute |
required |
arguments
|
list[str] | None
|
Optional arguments to pass to the script |
None
|
Returns:
| Type | Description |
|---|---|
list[str]
|
list[str]: Safe command list for subprocess execution |
Raises:
| Type | Description |
|---|---|
AppleScriptSanitizationError
|
If validation fails |
ValueError
|
If inputs are invalid |