【发布时间】:2020-12-31 01:06:37
【问题描述】:
我目前正在使用 Blazor(服务器)研究 XSS 的可能性和危险。
通常,Blazor 会自动输出字符串编码。我have read 那,这可以通过使用MarkupString 类来避免。
这对于正常的文本输出效果很好,但如果变量在属性内则不行。如果这是我的模板
<div class="page @(myString)">
@(myString)
</div>
@code {
MarkupString myString = new MarkupString("\" foo");
}
那么渲染的输出就变成了
<div class="page " foo">
" foo
</div>
第一次出现的 MarkupString 会被编码,第二次不会。
有人可以向我解释这种不同的行为吗?有什么方法可以防止第一种情况下的编码吗?
【问题讨论】:
标签: .net security encoding blazor xss