我有目的地(用于测试)在 WebMatrix C# 中分配了以下变量:
string val = "<script type='text/javascript'>alert('XSS Vector')</script>";
在页面的后面,我使用 razor 将该值直接写入页面。
<p>
@val
</p>
它以安全的方式写入文本(即不运行警报脚本)
这一点,再加上如果 'val' 包含一个 html 实体(例如,<
),它也会准确地写入“ <
”而不是“<”,因为我希望页面呈现。
这是因为 C# 先运行,然后再渲染 html 吗?
更重要的是,当这样使用时,以这种方式使用 razor 是否适合替代 html 编码?