最近某個系統要加上簽核意見,所以先使用 HtmlSanitizer 過濾惡意HTML tag。
using Ganss.Xss; var sanitizer = new HtmlSanitizer(); var html = @"<script>alert('xss')</script><div onload=""alert('xss')""" + @"style=""background-color: rgba(0, 0, 0, 1)"">Test<img src=""test.png""" + @"style=""background-image: url(javascript:alert('xss')); margin: 10px""></div>"; var sanitized = sanitizer.Sanitize(html, "https://www.example.com"); var expected = @"<div style=""background-color: rgba(0, 0, 0, 1)"">" + @"Test<img src=""https://www.example.com/test.png"" style=""margin: 10px""></div>"; Assert.Equal(expected, sanitized);
但後來又被要求要儲存純文字碼,所以就找了一下,有2個候選人 Html Agility Pack 與 Dangl.TextConverter ,Html Agility Pack 功能強大但是使用上較麻煩,Dangl.TextConverter 專精於不同格式轉換,使用上語法簡捷,就用它了。
留言