【发布时间】:2012-07-07 06:10:32
【问题描述】:
我有一个 .cshtml 页面,其中包含以下 HTML:
<div class="content rowBody">
<span class="rowText" title="@description">
@description
</span>
</div>
如果@description 的值为:<img src=x onerror=alert(/XSS/.source)>
我看到它在 title 属性中像这样显示并因此执行,而 span 标记之间的那个似乎已编码并且不会触发警报框。
我的假设是 Razor 引擎视图尝试对任何以 @ 开头的内容进行编码。这不适用于 HTML 属性吗?
生成的来源:
<div style="margin-left: 31px;" class="content rowBody unselectable" unselectable="on">
<span class="rowText unselectable" title="<img src=x onerror=alert(/XSS/.source)>" unselectable="on">
<img src=x onerror=alert(/XSS/.source)>
</span>
</div>
【问题讨论】:
-
请向我们展示生成的源代码。那不应该发生。
-
这看起来确实不正确。不过,我有点不知所措。 Razor 应该对两种情况进行相同的编码。我会尽量得到一个复制品。如果您可以缩小一个相当简单的示例,请将其发送到 anurse AT microsoft DOT com,我会调查它。无论您是否可以缩小样本范围,请随时与我联系。
标签: html asp.net-mvc-3 encoding razor xss