Blazor MarkupString,有风险吗?

问题描述 投票:0回答:1

使用 MarkupString 在 Blazor 页面内渲染 html 有哪些合法风险?

此 Blazor 0.5.0 预览博客文章中提到了一个警告。

https://devblogs.microsoft.com/dotnet/blazor-0-5-0-experimental-release-now-available/#render-raw-html

但是,我还看到了其他一些 Stackoverflow 帖子,其中用户尝试在 MarkupString(片段/对象?)内执行 JavaScript/C# 并解释说这是不可能的。

例如。 如何在 Blazor 中渲染包含 script 标签的 html

还有... Blazor:如何在 MarkupString 中使用 onclick 事件

我无法找到有关 MarkupString 的良好文档来确定它是否是良性的。

在我的用例中,一些开发人员可能会编辑在发布过程之外呈现的 html 片段,因此风险很小。

谢谢!

c# .net .net-core blazor
1个回答
0
投票

我不是安全专家,但我可以想到一个简单的例子。 您提到的警告是关于来自不受信任的来源的标记。 例如,某人可以将用户重定向到他的网络钓鱼网站。

@page "/"

<PageTitle>Home</PageTitle>

<h1>Dynamic HTML Content Example</h1>
<div>@HtmlContent</div>

@code {
    private MarkupString HtmlContent;

    protected override void OnInitialized()
    {
        var html = "<p style='color: blue;'>a <a href='https://www.google.com' target='_blank'>link some site</a>.</p>";
        HtmlContent = new MarkupString(html);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.