🎨 Fix XSS in the tag name https://github.com/siyuan-note/siyuan/issues/13168
This commit is contained in:
parent
6278c498e8
commit
8653f7ee61
1 changed files with 4 additions and 5 deletions
|
@ -1502,21 +1502,20 @@ func highlightByRegexp(query, typeFilter, id string) (ret []string) {
|
|||
|
||||
func markSearch(text string, keyword string, beforeLen int) (marked string, score float64) {
|
||||
if 0 == len(keyword) {
|
||||
marked = text
|
||||
|
||||
if strings.Contains(marked, search.SearchMarkLeft) { // 使用 FTS snippet() 处理过高亮片段,这里简单替换后就返回
|
||||
if strings.Contains(text, search.SearchMarkLeft) { // 使用 FTS snippet() 处理过高亮片段,这里简单替换后就返回
|
||||
marked = util.EscapeHTML(text)
|
||||
marked = strings.ReplaceAll(marked, search.SearchMarkLeft, "<mark>")
|
||||
marked = strings.ReplaceAll(marked, search.SearchMarkRight, "</mark>")
|
||||
return
|
||||
}
|
||||
|
||||
keywords := gulu.Str.SubstringsBetween(marked, search.SearchMarkLeft, search.SearchMarkRight)
|
||||
keywords := gulu.Str.SubstringsBetween(text, search.SearchMarkLeft, search.SearchMarkRight)
|
||||
keywords = gulu.Str.RemoveDuplicatedElem(keywords)
|
||||
keyword = strings.Join(keywords, search.TermSep)
|
||||
marked = strings.ReplaceAll(marked, search.SearchMarkLeft, "")
|
||||
marked = strings.ReplaceAll(text, search.SearchMarkLeft, "")
|
||||
marked = strings.ReplaceAll(marked, search.SearchMarkRight, "")
|
||||
_, marked = search.MarkText(marked, keyword, beforeLen, Conf.Search.CaseSensitive)
|
||||
marked = util.EscapeHTML(marked)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue