mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 12:53:43 +01:00 
			
		
		
		
	Improve some sanitizer rules (#32534)
This is a backport-only fix for 1.22 1.23 has a proper fix #32533
This commit is contained in:
		
							parent
							
								
									6555cfcac3
								
							
						
					
					
						commit
						578c02d652
					
				@ -39,7 +39,7 @@ const (
 | 
			
		||||
// SanitizerRules implements markup.Renderer
 | 
			
		||||
func (Renderer) SanitizerRules() []setting.MarkupSanitizerRule {
 | 
			
		||||
	return []setting.MarkupSanitizerRule{
 | 
			
		||||
		{Element: "div", AllowAttr: "class", Regexp: regexp.MustCompile(playerClassName)},
 | 
			
		||||
		{Element: "div", AllowAttr: "class", Regexp: regexp.MustCompile("^" + playerClassName + "$")},
 | 
			
		||||
		{Element: "div", AllowAttr: playerSrcAttr},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -37,9 +37,9 @@ func (Renderer) Extensions() []string {
 | 
			
		||||
// SanitizerRules implements markup.Renderer
 | 
			
		||||
func (Renderer) SanitizerRules() []setting.MarkupSanitizerRule {
 | 
			
		||||
	return []setting.MarkupSanitizerRule{
 | 
			
		||||
		{Element: "table", AllowAttr: "class", Regexp: regexp.MustCompile(`data-table`)},
 | 
			
		||||
		{Element: "th", AllowAttr: "class", Regexp: regexp.MustCompile(`line-num`)},
 | 
			
		||||
		{Element: "td", AllowAttr: "class", Regexp: regexp.MustCompile(`line-num`)},
 | 
			
		||||
		{Element: "table", AllowAttr: "class", Regexp: regexp.MustCompile(`^data-table$`)},
 | 
			
		||||
		{Element: "th", AllowAttr: "class", Regexp: regexp.MustCompile(`^line-num$`)},
 | 
			
		||||
		{Element: "td", AllowAttr: "class", Regexp: regexp.MustCompile(`^line-num$`)},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -67,10 +67,10 @@ func (st *Sanitizer) createDefaultPolicy() *bluemonday.Policy {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Allow classes for anchors
 | 
			
		||||
	policy.AllowAttrs("class").Matching(regexp.MustCompile(`ref-issue( ref-external-issue)?`)).OnElements("a")
 | 
			
		||||
	policy.AllowAttrs("class").Matching(regexp.MustCompile(`^ref-issue( ref-external-issue)?$`)).OnElements("a")
 | 
			
		||||
 | 
			
		||||
	// Allow classes for task lists
 | 
			
		||||
	policy.AllowAttrs("class").Matching(regexp.MustCompile(`task-list-item`)).OnElements("li")
 | 
			
		||||
	policy.AllowAttrs("class").Matching(regexp.MustCompile(`^task-list-item$`)).OnElements("li")
 | 
			
		||||
 | 
			
		||||
	// Allow classes for org mode list item status.
 | 
			
		||||
	policy.AllowAttrs("class").Matching(regexp.MustCompile(`^(unchecked|checked|indeterminate)$`)).OnElements("li")
 | 
			
		||||
@ -79,7 +79,7 @@ func (st *Sanitizer) createDefaultPolicy() *bluemonday.Policy {
 | 
			
		||||
	policy.AllowAttrs("class").Matching(regexp.MustCompile(`^icon(\s+[\p{L}\p{N}_-]+)+$`)).OnElements("i")
 | 
			
		||||
 | 
			
		||||
	// Allow classes for emojis
 | 
			
		||||
	policy.AllowAttrs("class").Matching(regexp.MustCompile(`emoji`)).OnElements("img")
 | 
			
		||||
	policy.AllowAttrs("class").Matching(regexp.MustCompile(`^emoji$`)).OnElements("img")
 | 
			
		||||
 | 
			
		||||
	// Allow icons, emojis, chroma syntax and keyword markup on span
 | 
			
		||||
	policy.AllowAttrs("class").Matching(regexp.MustCompile(`^((icon(\s+[\p{L}\p{N}_-]+)+)|(emoji)|(language-math display)|(language-math inline))$|^([a-z][a-z0-9]{0,2})$|^` + keywordClass + `$`)).OnElements("span")
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user