asp.net MVC应用从javascript调用action方法时的安全问题

Security concern for Asp,net MVC app when invoking action method from javascript

本文关键字:方法 安全 问题 action 调用 MVC net 应用 javascript asp      更新时间:2023-09-26

我在控制器类上添加了Authentication属性,用于管理目的,如添加,删除类别和产品。所有这样的控制器(ManageCategory, ManageProduct)都用以下方式装饰:-

[Authorize(Roles = "Administrator")]

这些控制器有UploadRemove动作方法,由jquery从渲染视图中调用。由于客户端脚本不使用URL或回发,我有点怀疑是否有人可以绕过控制器授权。这些操作方法非常敏感,因为它提供了删除服务器上文件的能力。下面是来自Remove操作方法的代码:

[HttpPost]
public ActionResult Remove(string fileName)
{
    string completFileName = Server.MapPath("~" + fileName);
    System.IO.File.Delete(completFileName);
    return Json(true);
}

虽然这个动作方法驻留在具有授权的控制器中,但是有人可以在不登录的情况下访问它吗?我应该担心和做其他事情或一个将永远需要被授权为管理员之前访问这个?

我不知道你说的…是什么意思

由于客户端脚本不使用URL或回发

来自客户端脚本的AJAX请求发送cookie与常规页面请求相同-使用Firebug或Fiddler或其他类似工具查看AJAX请求的标头。

这包括。aspxauth cookie,它是标准的ASP。. NET身份验证使用。控制器将对AJAX请求执行与对普通页面请求完全相同的身份验证检查。

控制器级属性应用于该控制器中的所有动作,因此Upload()Remove()将表现得好像它们被装饰了:

[Authorize(Roles = "Administrator")]