Backport #12622 * Escape more things that are passed through str2html Signed-off-by: Andrew Thornton <art27@cantab.net> * Bloody editors! Co-authored-by: mrsdizzie <info@mrsdizzie.com> * Update routers/user/oauth.gotags/v1.12.5
@@ -7,6 +7,7 @@ package user | |||
import ( | |||
"encoding/base64" | |||
"fmt" | |||
"html" | |||
"net/url" | |||
"strings" | |||
@@ -271,8 +272,8 @@ func AuthorizeOAuth(ctx *context.Context, form auth.AuthorizationForm) { | |||
ctx.Data["Application"] = app | |||
ctx.Data["RedirectURI"] = form.RedirectURI | |||
ctx.Data["State"] = form.State | |||
ctx.Data["ApplicationUserLink"] = "<a href=\"" + setting.AppURL + app.User.LowerName + "\">@" + app.User.Name + "</a>" | |||
ctx.Data["ApplicationRedirectDomainHTML"] = "<strong>" + form.RedirectURI + "</strong>" | |||
ctx.Data["ApplicationUserLink"] = "<a href=\"" + html.EscapeString(setting.AppURL) + html.EscapeString(url.PathEscape(app.User.LowerName)) + "\">@" + html.EscapeString(app.User.Name) + "</a>" | |||
ctx.Data["ApplicationRedirectDomainHTML"] = "<strong>" + html.EscapeString(form.RedirectURI) + "</strong>" | |||
// TODO document SESSION <=> FORM | |||
err = ctx.Session.Set("client_id", app.ClientID) | |||
if err != nil { |
@@ -106,7 +106,7 @@ | |||
<span class="text grey"> | |||
<a class="author" href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a> | |||
{{$link := printf "%s/commit/%s" $.Repository.HTMLURL $.Issue.PullRequest.MergedCommitID}} | |||
{{$.i18n.Tr "repo.issues.pull_merged_at" $link (ShortSha $.Issue.PullRequest.MergedCommitID) $.BaseTarget $createdStr | Str2html}} | |||
{{$.i18n.Tr "repo.issues.pull_merged_at" $link (ShortSha $.Issue.PullRequest.MergedCommitID) ($.BaseTarget|Escape) $createdStr | Str2html}} | |||
</span> | |||
</div> | |||
{{else if eq .Type 3 5 6}} |
@@ -121,7 +121,7 @@ | |||
{{else if .IsPullWorkInProgress}} | |||
<div class="item text grey"> | |||
<i class="icon icon-octicon">{{svg "octicon-x" 16}}</i> | |||
{{$.i18n.Tr "repo.pulls.cannot_merge_work_in_progress" .WorkInProgressPrefix | Str2html}} | |||
{{$.i18n.Tr "repo.pulls.cannot_merge_work_in_progress" (.WorkInProgressPrefix|Escape) | Str2html}} | |||
</div> | |||
{{else if .Issue.PullRequest.IsChecking}} | |||
<div class="item text yellow"> |
@@ -31,18 +31,18 @@ | |||
{{ $mergedStr:= TimeSinceUnix .Issue.PullRequest.MergedUnix $.Lang }} | |||
{{if .Issue.OriginalAuthor }} | |||
{{.Issue.OriginalAuthor}} | |||
<span class="pull-desc">{{$.i18n.Tr "repo.pulls.merged_title_desc" .NumCommits .HeadTarget .BaseTarget $mergedStr | Str2html}}</span> | |||
<span class="pull-desc">{{$.i18n.Tr "repo.pulls.merged_title_desc" .NumCommits (.HeadTarget|Escape) (.BaseTarget|Escape) $mergedStr | Str2html}}</span> | |||
{{else}} | |||
<a {{if gt .Issue.PullRequest.Merger.ID 0}}href="{{.Issue.PullRequest.Merger.HomeLink}}"{{end}}>{{.Issue.PullRequest.Merger.GetDisplayName}}</a> | |||
<span class="pull-desc">{{$.i18n.Tr "repo.pulls.merged_title_desc" .NumCommits .HeadTarget .BaseTarget $mergedStr | Str2html}}</span> | |||
<span class="pull-desc">{{$.i18n.Tr "repo.pulls.merged_title_desc" .NumCommits (.HeadTarget|Escape) (.BaseTarget|Escape) $mergedStr | Str2html}}</span> | |||
{{end}} | |||
{{else}} | |||
{{if .Issue.OriginalAuthor }} | |||
<span id="pull-desc" class="pull-desc">{{.Issue.OriginalAuthor}} {{$.i18n.Tr "repo.pulls.title_desc" .NumCommits .HeadTarget .BaseTarget | Str2html}}</span> | |||
<span id="pull-desc" class="pull-desc">{{.Issue.OriginalAuthor}} {{$.i18n.Tr "repo.pulls.title_desc" .NumCommits (.HeadTarget|Escape) (.BaseTarget|Escape) | Str2html}}</span> | |||
{{else}} | |||
<span id="pull-desc" class="pull-desc"> | |||
<a {{if gt .Issue.Poster.ID 0}}href="{{.Issue.Poster.HomeLink}}"{{end}}>{{.Issue.Poster.GetDisplayName}}</a> | |||
{{$.i18n.Tr "repo.pulls.title_desc" .NumCommits .HeadTarget .BaseTarget | Str2html}} | |||
{{$.i18n.Tr "repo.pulls.title_desc" .NumCommits (.HeadTarget|Escape) (.BaseTarget|Escape) | Str2html}} | |||
</span> | |||
{{end}} | |||
<span id="pull-desc-edit" style="display: none"> |
@@ -5,7 +5,7 @@ | |||
<div class="ui container"> | |||
{{template "base/alert" .}} | |||
<h4 class="ui top attached header"> | |||
{{.i18n.Tr "repo.settings.branch_protection" .Branch.BranchName | Str2html}} | |||
{{.i18n.Tr "repo.settings.branch_protection" (.Branch.BranchName|Escape) | Str2html}} | |||
</h4> | |||
<div class="ui attached segment branch-protection"> | |||
<form class="ui form" action="{{.Link}}" method="post"> |
@@ -15,15 +15,15 @@ | |||
{{else if .ResendLimited}} | |||
<p class="center">{{.i18n.Tr "auth.resent_limit_prompt"}}</p> | |||
{{else}} | |||
<p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .SignedUser.Email .ActiveCodeLives | Str2html}}</p> | |||
<p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" (.SignedUser.Email|Escape) .ActiveCodeLives | Str2html}}</p> | |||
{{end}} | |||
{{else}} | |||
{{if .IsSendRegisterMail}} | |||
<p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .Email .ActiveCodeLives | Str2html}}</p> | |||
<p>{{.i18n.Tr "auth.confirmation_mail_sent_prompt" (.Email|Escape) .ActiveCodeLives | Str2html}}</p> | |||
{{else if .IsActivateFailed}} | |||
<p>{{.i18n.Tr "auth.invalid_code"}}</p> | |||
{{else}} | |||
<p>{{.i18n.Tr "auth.has_unconfirmed_mail" .SignedUser.Name .SignedUser.Email | Str2html}}</p> | |||
<p>{{.i18n.Tr "auth.has_unconfirmed_mail" (.SignedUser.Name|Escape) (.SignedUser.Email|Escape) | Str2html}}</p> | |||
<div class="ui divider"></div> | |||
<div class="text right"> | |||
<button class="ui blue button">{{.i18n.Tr "auth.resend_mail"}}</button> |
@@ -50,17 +50,17 @@ | |||
{{$.i18n.Tr "action.reopen_pull_request" .GetRepoLink $index .ShortRepoPath | Str2html}} | |||
{{else if eq .GetOpType 16}} | |||
{{ $index := index .GetIssueInfos 0}} | |||
{{$.i18n.Tr "action.delete_tag" .GetRepoLink .GetBranch .ShortRepoPath | Str2html}} | |||
{{$.i18n.Tr "action.delete_tag" .GetRepoLink (.GetBranch|Escape) .ShortRepoPath | Str2html}} | |||
{{else if eq .GetOpType 17}} | |||
{{ $index := index .GetIssueInfos 0}} | |||
{{$.i18n.Tr "action.delete_branch" .GetRepoLink .GetBranch .ShortRepoPath | Str2html}} | |||
{{$.i18n.Tr "action.delete_branch" .GetRepoLink (.GetBranch|Escape) .ShortRepoPath | Str2html}} | |||
{{else if eq .GetOpType 18}} | |||
{{ $branchLink := .GetBranch | EscapePound}} | |||
{{$.i18n.Tr "action.mirror_sync_push" .GetRepoLink $branchLink .GetBranch .ShortRepoPath | Str2html}} | |||
{{$.i18n.Tr "action.mirror_sync_push" .GetRepoLink $branchLink (.GetBranch|Escape) .ShortRepoPath | Str2html}} | |||
{{else if eq .GetOpType 19}} | |||
{{$.i18n.Tr "action.mirror_sync_create" .GetRepoLink .GetBranch .ShortRepoPath | Str2html}} | |||
{{$.i18n.Tr "action.mirror_sync_create" .GetRepoLink (.GetBranch|Escape) .ShortRepoPath | Str2html}} | |||
{{else if eq .GetOpType 20}} | |||
{{$.i18n.Tr "action.mirror_sync_delete" .GetRepoLink .GetBranch .ShortRepoPath | Str2html}} | |||
{{$.i18n.Tr "action.mirror_sync_delete" .GetRepoLink (.GetBranch|Escape) .ShortRepoPath | Str2html}} | |||
{{else if eq .GetOpType 21}} | |||
{{ $index := index .GetIssueInfos 0}} | |||
{{$.i18n.Tr "action.approve_pull_request" .GetRepoLink $index .ShortRepoPath | Str2html}} |