[fix] fix self closing tag token
Close #57 git-svn-id: file:///srv/svn/repo/yukari/trunk@116 f3bd38d9-da89-464d-a02a-eb04e43141b5
This commit is contained in:
parent
c066a1f3d4
commit
4990b9d86b
22
morty.go
22
morty.go
@ -145,24 +145,6 @@ var SAFE_ATTRIBUTES [][]byte = [][]byte{
|
||||
[]byte("width"),
|
||||
}
|
||||
|
||||
var SELF_CLOSING_ELEMENTS [][]byte = [][]byte{
|
||||
[]byte("area"),
|
||||
[]byte("base"),
|
||||
[]byte("br"),
|
||||
[]byte("col"),
|
||||
[]byte("embed"),
|
||||
[]byte("hr"),
|
||||
[]byte("img"),
|
||||
[]byte("input"),
|
||||
[]byte("keygen"),
|
||||
[]byte("link"),
|
||||
[]byte("meta"),
|
||||
[]byte("param"),
|
||||
[]byte("source"),
|
||||
[]byte("track"),
|
||||
[]byte("wbr"),
|
||||
}
|
||||
|
||||
var LINK_REL_SAFE_VALUES [][]byte = [][]byte{
|
||||
[]byte("alternate"),
|
||||
[]byte("archives"),
|
||||
@ -553,7 +535,7 @@ func sanitizeHTML(rc *RequestConfig, out io.Writer, htmlDoc []byte) {
|
||||
tag, hasAttrs := decoder.TagName()
|
||||
safe := !inArray(tag, UNSAFE_ELEMENTS)
|
||||
if !safe {
|
||||
if !inArray(tag, SELF_CLOSING_ELEMENTS) {
|
||||
if token != html.SelfClosingTagToken {
|
||||
var unsafeTag []byte = make([]byte, len(tag))
|
||||
copy(unsafeTag, tag)
|
||||
unsafeElements = append(unsafeElements, unsafeTag)
|
||||
@ -678,7 +660,7 @@ func sanitizeHTML(rc *RequestConfig, out io.Writer, htmlDoc []byte) {
|
||||
}
|
||||
} else {
|
||||
switch token {
|
||||
case html.StartTagToken:
|
||||
case html.StartTagToken, html.SelfClosingTagToken:
|
||||
tag, _ := decoder.TagName()
|
||||
if inArray(tag, UNSAFE_ELEMENTS) {
|
||||
unsafeElements = append(unsafeElements, tag)
|
||||
|
Loading…
x
Reference in New Issue
Block a user