HTML 属性编码

Try*_*ity 5 html xss encoding razor asp.net-mvc-3

我有一个 .cshtml 页面,其中包含以下 HTML:

<div class="content rowBody">
       <span class="rowText" title="@description">                           
              @description                           
       </span>
</div>
Run Code Online (Sandbox Code Playgroud)

如果 @description 的值是:我看到它在title<img src=x onerror=alert(/XSS/.source)>属性 中像这样显示并因此执行,而 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">                           
                            &lt;img src=x onerror=alert(/XSS/.source)&gt;                           
                        </span>
                    </div>
Run Code Online (Sandbox Code Playgroud)