Date: 2026-03-06 Status: Approved
The terminal blocks all shell operators (pipes, redirection, chaining, expansion) unconditionally. Even with allowAllCommands(), users cannot run commands like ls | grep foo. There is no fluent API to control which operators are allowed.
Add granular fluent methods to control which shell operator groups are allowed, plus a global toggle.
| Method | Operators Unblocked | Risk |
|---|---|---|
allowPipes() |
| |
Low |
allowRedirection() |
>, <, >>, << |
Medium |
allowChaining() |
;, &&, || |
Medium |
allowExpansion() |
$, `, $(), ${}, hex/octal escapes |
High |
allowAllShellOperators() |
All of the above | High |
Fluent API (Schema) → mount() params → Livewire properties → getSanitizer() → CommandSanitizer
src/Security/CommandSanitizer.php — group-aware filteringsrc/Livewire/WebTerminal.php — new mount params + propertiessrc/Schemas/Components/WebTerminal.php — fluent methodsconfig/web-terminal.php — security.shell_operators sectionREADME.md — documentation with risk explanations\x00) blockingHow can I help you explore Laravel packages today?