You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASP.NET Core 5.0 MVC中模拟XSS攻击?

模拟XSS攻击的实现方法(ASP.NET Core 5.0 MVC)

问题出在ASP.NET Core MVC的默认行为:当控制器直接返回string类型时,框架会自动对输出内容做HTML编码,导致你的<script>标签被转义成纯文本(比如<变成&lt;),无法被浏览器解析执行。

要成功模拟XSS,需要让输出内容不被自动编码,两种简单方法如下:

方法一:返回HtmlString类型

修改控制器代码,引入Microsoft.AspNetCore.Html命名空间,将返回类型改为HtmlString:

using Microsoft.AspNetCore.Html;

public class HelloWorldController : Controller
{
    public HtmlString Welcome(string name)
    {
        return new HtmlString(name);
    }
}

方法二:返回ContentResult并指定HTML内容类型

将返回类型改为IActionResult,用Content方法返回内容并设置类型为text/html:

public class HelloWorldController : Controller
{
    public IActionResult Welcome(string name)
    {
        return Content(name, "text/html");
    }
}

修改完成后,重新访问/helloworld/welcome?name=<script>alert("hello")</script>,就能触发alert弹窗。

注意:以上仅用于XSS攻击场景的模拟测试,实际生产环境必须对用户输入进行严格的验证、过滤和编码,杜绝XSS漏洞。

内容的提问来源于stack exchange,提问作者user20051441

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 02:15:43