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

ASP.NET Core Razor中Ajax传递用户名是否安全及安全方案查询

Ajax传递用户名的安全风险及解决方法

通过Ajax传递用户名完全不安全,存在已登录恶意用户篡改的风险。

恶意用户可以借助浏览器开发者工具(比如Chrome DevTools)拦截并修改Ajax请求中的username参数,将其替换为其他用户的用户名,这样后端会把myStuff错误保存到目标用户的账户下,直接导致数据越权篡改或访问问题。

正确的实现方式

不要从前端接收用户名,而是直接从后端的已登录用户身份信息中获取。ASP.NET Core提供了内置的身份验证机制,可以安全获取当前登录用户的标识:

修改后的处理程序代码示例:

public JsonResult OnPostSaveMyStuff(string myStuff)
{
    // 从当前登录用户的身份信息中获取用户名
    var username = User.Identity.Name;
    
    // 如果使用ASP.NET Core Identity框架,也可以获取唯一用户ID(更安全,避免用户名重复)
    // var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
    
    // 执行保存逻辑...
}

可搜索的学习内容

  • ASP.NET Core 身份验证获取当前用户信息
  • ASP.NET Core Razor Pages 防越权访问
  • ASP.NET Core Claims 身份使用
  • Razor Pages 后端获取登录用户标识

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:52:01