feature/recipe_implementation #5
@ -75,9 +75,13 @@ func Load(path string, userParams map[string]any) (*Recipe, error) {
|
|||||||
safeMap := safeCommands()
|
safeMap := safeCommands()
|
||||||
for _, cmd := range r.AllowedShellCommands {
|
for _, cmd := range r.AllowedShellCommands {
|
||||||
trimmed := strings.ToLower(strings.TrimSpace(cmd))
|
trimmed := strings.ToLower(strings.TrimSpace(cmd))
|
||||||
|
|
||||||
allowed := false
|
allowed := false
|
||||||
for safe := range safeMap {
|
for safe := range safeMap {
|
||||||
if strings.HasPrefix(trimmed, safe) {
|
safeTrim := strings.ToLower(strings.TrimSpace(safe))
|
||||||
|
|
||||||
|
// Match exact command OR command followed by space + arguments
|
||||||
|
if trimmed == safeTrim || strings.HasPrefix(trimmed, safeTrim+" ") {
|
||||||
allowed = true
|
allowed = true
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user