asp.net MVC应用从javascript调用action方法时的安全问题
Security concern for Asp,net MVC app when invoking action method from javascript
我在控制器类上添加了Authentication属性,用于管理目的,如添加,删除类别和产品。所有这样的控制器(ManageCategory, ManageProduct)都用以下方式装饰:-
[Authorize(Roles = "Administrator")]
这些控制器有Upload和Remove动作方法,由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")]
相关文章:
- java安全doPrivileged方法如何阻止任意脚本
- 什么是创建 JavaScript 类的适当、现代和跨浏览器安全的方法
- 使用Javascript检查测验答案的最安全方法
- 在Angular Service/Controller中实现安全$apply的最佳方法
- 了解HTTP请求中的referr/referrer的安全方法是什么
- 嵌套文档.writes和第三方广告在IE中不起作用!!!!任何安全的解决方法
- 检测SelectBox选择的更安全方法
- 选择所有没有值属性的单选按钮的最安全方法
- 从数组中提取子数组的内存最安全的方法
- 有没有一种安全的方法可以将 React.js 与 Python Flask 后端用于多用户、受密码保护的站点
- 方法应该有多安全
- 在 JavaScript 中使用 PHP 变量的安全方法
- 检查数组元素是否存在的安全方法
- json 一个 html 的安全方法
- 有没有一种安全的方法可以在页面中允许第 3 方 JavaScript
- 跨站点 XMLHttpRequest 内容安全策略指令解决方法
- 使用 php ajax jquery 从 mysql 发送或获取数据 - 什么是安全方法
- JSON在WP中使用GET/POST方法(安全问题)
- 这种对用户进行身份验证/登录的方法安全吗?
- 使用jQuery在AJAX上编写JS代码-这个方法安全吗?