support yaml mapping strings, reduce injection risks #25
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Simplify usage and improve security
1.
withas a YAML mapping stringNow you can specify the
withinput as a YAML mapping string, e.g.Note that JSON still works, since it's a subset of YAML.
2. Reduce injection risks
As part of implementing this, we now reduce the risks around YAML injection when
withcontains untrusted expressions. E.g. it's no longer possible to inject more steps to the action, since all lines are fully indented.That said, additional inputs could still be injected to the dynamically called action. There's no way for dynamic-uses to prevent this, since from its perspective the
withinput is an opaque string of inputs that are presumably trustworthy. So the overall guidance is unchanged in that every expression used inwithshould be made YAML-safe viatoJSON