gpt4 book ai didi

c# - 在 WebMatrix 中使用 Razor 是否可以减轻 XSS 威胁?

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:53 25 4
gpt4 key购买 nike

我有目的地(为了测试)在 WebMatrix C# 中分配了以下变量:

string val = "<script type='text/javascript'>alert('XSS Vector')</script>";

在页面的后面,我使用 razor 将该值直接写入页面。

<p>
@val
</p>

它以安全的方式写入文本(即不运行警报脚本)

再加上如果“val”包含一个 html 实体(例如,<),它也会准确地写入“<”而不是“< "正如我所期望的那样呈现页面。

这是因为先运行C#,然后渲染html吗?

更重要的是,像这样使用时,以这种方式使用 razor 是否适合替代 html 编码?

最佳答案

@Variable 语法将对您传递给它的任何文本进行 HtmlEncode;因此,您实际上看到了您为字符串值设置的内容。你是对的,这是为了 XSS 保护。这是执行此操作的 Razor 的一部分; @Variable 语法本身。

所以基本上,使用 @Variable 语法并不是 Html 编码的“替代品”;它 HTML 编码。

相关:如果您想要一些字符串呈现 HTML,您可以在 Razor 中使用此语法:

@Html.Raw(Variable)

这导致 Html 编码完成。显然,这对于用户提供的输入来说是危险的。

关于c# - 在 WebMatrix 中使用 Razor 是否可以减轻 XSS 威胁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15034177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com