File tree Expand file tree Collapse file tree 1 file changed +9
-3
lines changed
Expand file tree Collapse file tree 1 file changed +9
-3
lines changed Original file line number Diff line number Diff line change 1111
1212Security: Keeps HTML in a trusted template instead of inline raw HTML in Markdown, so Goldmark unsafe mode is not required.
1313*/}}
14- {{ $href := .Get "href" | default (.Get 0) }}
15- {{ if not $href }}{{ errorf "slackbutton shortcode: missing required 'href' parameter" }}{{ end }}
14+ {{ $raw := .Get "href" | default (.Get 0) }}
15+ {{ if not $raw }}{{ errorf "slackbutton shortcode: missing required 'href' parameter" }}{{ end }}
16+ {{/* Strip optional markdown autolink angle brackets and whitespace */}}
17+ {{ $href := $raw | strings.TrimPrefix "< " | strings.TrimSuffix "> " | strings.TrimSpace }} {{/* Basic scheme allowlist to
18+ avoid ZgotmplZ when browsers sanitize */}} {{ $allowed :=(hasPrefix $href "https://" ) | or (hasPrefix $href "http://"
19+ ) | or (hasPrefix $href "/" ) }} {{ if not $allowed }}{{
20+ errorf "slackbutton shortcode: unsupported or unsafe href '%s'" $href }}{{ end }}
1621{{ $text := .Inner | default "Slack" }}
1722{{ $target := .Get "target" | default "_blank" }}
1823{{ $rel := .Get "rel" | default "noopener noreferrer" }}
1924{{ $extra := .Get "class" }}
20- < a href ="{{ $href }} " class ="slack-button{{ if $extra }} {{ $extra }}{{ end }} " target ="{{ $target }} " rel ="{{ $rel }} "> {{ $text }}</ a >
25+ < a href ="{{ $href | safeURL }} " class ="slack-button{{ if $extra }} {{ $extra }}{{ end }} " target ="{{ $target }} "
26+ rel ="{{ $rel }} "> {{ $text }}</ a >
You can’t perform that action at this time.
0 commit comments