首页 > 解决方案 > 如何将字符串转换为浏览器在 C# 中解释的 html 属性值

问题描述

我需要在服务器端验证用户输入,并且href需要确保只允许作为协议(如果指定的话)。目标是消除可能的恶意代码或任何类似的东西。http://https://javascript:...

造成困难的是冒号可以在这样的字符串中编码的方式数量,例如:, &#58, :, &#x0003A, :。我想转换值并在浏览器呈现页面之前将其视为浏览器。

一种选择是使用 AngleSharp 构建 DOM 文档,因为它在解析属性时做得非常好。然后我可以检索该值并对其进行验证,但是为了解析一个值而构建整个 DOM 树似乎有点过头了。有没有办法使用 AngleSharp 来解析一个属性值?或者是否有一个我可以仅用于此任务的库?

我也发现了这个问题,但是其中使用的方法并没有像浏览器那样真正解析 URI。

标签: c#xssanglesharp

解决方案


你想要的HtmlDecode()方法。您可能需要添加对项目的引用才能使用它。


推荐阅读