diff --git a/pkg/serverconfigs/filterconfigs/filter_html_escape.go b/pkg/serverconfigs/filterconfigs/filter_html_escape.go new file mode 100644 index 0000000..c6f11c3 --- /dev/null +++ b/pkg/serverconfigs/filterconfigs/filter_html_escape.go @@ -0,0 +1,20 @@ +package filterconfigs + +import ( + "github.com/iwind/TeaGo/types" + "html" +) + +type HTMLEscapeFilter struct { +} + +// 初始化 +func (this *HTMLEscapeFilter) Init() error { + return nil +} + +// 执行过滤 +func (this *HTMLEscapeFilter) Do(input interface{}, options interface{}) (output interface{}, goNext bool, err error) { + s := types.String(input) + return html.EscapeString(s), true, nil +} diff --git a/pkg/serverconfigs/filterconfigs/filter_html_escape_test.go b/pkg/serverconfigs/filterconfigs/filter_html_escape_test.go new file mode 100644 index 0000000..4a59111 --- /dev/null +++ b/pkg/serverconfigs/filterconfigs/filter_html_escape_test.go @@ -0,0 +1,9 @@ +package filterconfigs + +import "testing" + +func TestHTMLEscapeFilter_Do(t *testing.T) { + filter := &HTMLEscapeFilter{} + t.Log(filter.Do("Hello", nil)) + t.Log(filter.Do("", nil)) +} diff --git a/pkg/serverconfigs/filterconfigs/filter_html_unescape.go b/pkg/serverconfigs/filterconfigs/filter_html_unescape.go new file mode 100644 index 0000000..15bd19e --- /dev/null +++ b/pkg/serverconfigs/filterconfigs/filter_html_unescape.go @@ -0,0 +1,20 @@ +package filterconfigs + +import ( + "github.com/iwind/TeaGo/types" + "html" +) + +type HTMLUnescapeFilter struct { +} + +// 初始化 +func (this *HTMLUnescapeFilter) Init() error { + return nil +} + +// 执行过滤 +func (this *HTMLUnescapeFilter) Do(input interface{}, options interface{}) (output interface{}, goNext bool, err error) { + s := types.String(input) + return html.UnescapeString(s), true, nil +} diff --git a/pkg/serverconfigs/filterconfigs/filter_html_unescape_test.go b/pkg/serverconfigs/filterconfigs/filter_html_unescape_test.go new file mode 100644 index 0000000..e0d2da4 --- /dev/null +++ b/pkg/serverconfigs/filterconfigs/filter_html_unescape_test.go @@ -0,0 +1,10 @@ +package filterconfigs + +import "testing" + +func TestHTMLUnescapeFilter_Do(t *testing.T) { + filter := &HTMLUnescapeFilter{} + t.Log(filter.Do("Hello", nil)) + t.Log(filter.Do("<script>", nil)) + t.Log(filter.Do("