我有一個字串:
`<p onclick =" alert('abc') "style =" color: black "> text </p>`
我想洗掉所有 Javascript,比如onclick, onchange, ...只留下 HTML 和 CSS。有沒有辦法在 C# 中做到這一點?我能想到的唯一方法是從字串中洗掉每個 javascript 標記。
輸入:<p onclick =" alert('abc') "style =" color: black "> text </p>
輸出:<p "style =" color: black "> text </p>
uj5u.com熱心網友回復:
您可以使用HtmlSanitizer洗掉提供的 HTML 片段的行內 java 腳本。
例如 - 以下代碼
var sanitizer = new HtmlSanitizer();
var html = @"<script>alert('xss')</script><div onl oad=""alert('xss')"""
@"style=""background-color: test"">Test<img src=""test.gif"""
@"style=""background-image: url(javascript:alert('xss')); margin: 10px""><p onclick =""alert('abc')"" style =""color: black"">text</p></div>";
var sanitized = sanitizer.Sanitize(html);
將輸出回傳為
<div>Test<img src="test.gif" style="margin: 10px"><p style="color: rgba(0, 0, 0, 1)">text</p></div>
您可以查看此小提琴以獲取更多詳細資訊。
uj5u.com熱心網友回復:
最好的方法是使用Html Agility Pack。我已經在其檔案中鏈接了您需要的頁面。
像這樣使用它:
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var pNode = htmlDoc.DocumentNode.SelectSingleNode("//p");
pNode.Attributes.Remove("onclick");
這是小提琴。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457467.html
標籤:javascript C# 细绳
下一篇:C#無效的運算式術語' ='
