Skip to content

Commit 33a3fef

Browse files
committed
Add HTML safety
1 parent c3ee893 commit 33a3fef

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

hugoalh.GitHubActionsToolkit/module/step-summary.psm1

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Function Add-StepSummaryHeader {
5050
[OutputType([Void])]
5151
Param (
5252
[Parameter(Mandatory = $True, Position = 0)][ValidateRange(1, 6)][UInt16]$Level,
53-
[Parameter(Mandatory = $True, Position = 1)][Alias('Title', 'Value')][String]$Header
53+
[Parameter(Mandatory = $True, Position = 1)][ValidatePattern('^.+$', ErrorMessage = 'Parameter `Header` must be in single line string!')][Alias('Title', 'Value')][String]$Header
5454
)
5555
Return (Add-StepSummary -Value "$('#' * $Level) $Header")
5656
}
@@ -88,25 +88,25 @@ Function Add-StepSummaryImage {
8888
$Width -igt -1 -or
8989
$Height -igt -1
9090
) {
91-
[String]$ResultHtml = "<img src=`"$Uri`""
91+
[String]$ResultHtml = "<img src=`"$([Uri]::EscapeUriString($Uri))`""
9292
If ($Title.Length -igt 0) {
93-
$ResultHtml += " title=`"$Title`""
93+
$ResultHtml += " title=`"$([System.Web.HttpUtility]::HtmlAttributeEncode($Title))`""
9494
}
9595
If ($AlternativeText.Length -igt 0) {
96-
$ResultHtml += " alt=`"$AlternativeText`""
96+
$ResultHtml += " alt=`"$([System.Web.HttpUtility]::HtmlAttributeEncode($AlternativeText))`""
9797
}
9898
If ($Width -igt -1) {
9999
$ResultHtml += " width=`"$Width`""
100100
}
101101
If ($Height -igt -1) {
102102
$ResultHtml += " height=`"$Height`""
103103
}
104-
$ResultHtml += '>'
104+
$ResultHtml += ' />'
105105
Return (Add-StepSummary -Value $ResultHtml -NoNewLine:$NoNewLine)
106106
}
107-
[String]$ResultMarkdown = "![$AlternativeText]($Uri"
107+
[String]$ResultMarkdown = "![$([System.Web.HttpUtility]::HtmlAttributeEncode($AlternativeText))]($([Uri]::EscapeUriString($Uri))"
108108
If ($Title.Length -igt 0) {
109-
$ResultMarkdown += " `"$Title`""
109+
$ResultMarkdown += " `"$([System.Web.HttpUtility]::HtmlAttributeEncode($Title))`""
110110
}
111111
$ResultMarkdown += ')'
112112
Return (Add-StepSummary -Value $ResultMarkdown -NoNewLine:$NoNewLine)
@@ -136,9 +136,9 @@ Function Add-StepSummaryLink {
136136
[String]$Title,
137137
[Switch]$NoNewLine
138138
)
139-
[String]$ResultMarkdown = "[$Text]($Uri"
139+
[String]$ResultMarkdown = "[$([System.Web.HttpUtility]::HtmlAttributeEncode($Text))]($([Uri]::EscapeUriString($Uri))"
140140
If ($Title.Length -igt 0) {
141-
$ResultMarkdown += " `"$Title`""
141+
$ResultMarkdown += " `"$([System.Web.HttpUtility]::HtmlAttributeEncode($Title))`""
142142
}
143143
$ResultMarkdown += ')'
144144
Return (Add-StepSummary -Value $ResultMarkdown -NoNewLine:$NoNewLine)
@@ -161,7 +161,7 @@ Function Add-StepSummarySubscriptText {
161161
[Parameter(Mandatory = $True, Position = 0)][Alias('Input', 'InputObject', 'Object')][String]$Text,
162162
[Switch]$NoNewLine
163163
)
164-
Return (Add-StepSummary -Value "<sub>$Text</sub>" -NoNewLine:$NoNewLine)
164+
Return (Add-StepSummary -Value "<sub>$([System.Web.HttpUtility]::HtmlEncode($Text))</sub>" -NoNewLine:$NoNewLine)
165165
}
166166
Set-Alias -Name 'Add-StepSummarySubscript' -Value 'Add-StepSummarySubscriptText' -Option 'ReadOnly' -Scope 'Local'
167167
<#
@@ -181,7 +181,7 @@ Function Add-StepSummarySuperscriptText {
181181
[Parameter(Mandatory = $True, Position = 0)][Alias('Input', 'InputObject', 'Object')][String]$Text,
182182
[Switch]$NoNewLine
183183
)
184-
Return (Add-StepSummary -Value "<sup>$Text</sup>" -NoNewLine:$NoNewLine)
184+
Return (Add-StepSummary -Value "<sup>$([System.Web.HttpUtility]::HtmlEncode($Text))</sup>" -NoNewLine:$NoNewLine)
185185
}
186186
Set-Alias -Name 'Add-StepSummarySuperscript' -Value 'Add-StepSummarySuperscriptText' -Option 'ReadOnly' -Scope 'Local'
187187
<#

0 commit comments

Comments
 (0)