最近某個系統要加上簽核意見,所以先使用 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 專精於不同格式轉換,使用上語法簡捷,就用它了。
留言