我的 Controller 中有一个执行删除操作的操作方法:
private ActionResult Delete(int id)
{
if (delete(id))
{
return Content("success");
}
else
{
return Content("something went wrong!");
}
}
我从我的角度使用 jQuery ajax 来调用它:
jQuery('#NotificationArea').load('/MyController/Delete/5');
为此,我需要在 global.asax 中注册 Controller 操作:
routes.MapRoute(
"Delete",
"MyController/Delete/{id}",
new { controller = "MyController", action = "Delete" }
);
但我意识到这很危险,因为每个人都可以直接从浏览器调用此操作并更改 id 来删除不同的元素:
myDomain.com/MyController/Delete/20
如何避免这种潜在的安全问题?
最佳答案
一种选择是在删除函数之上使用 [HttpPost] 属性。这样,只有当您加载的页面发布该数据时,它才会起作用,并且直接点击该网址不起作用。
您还可以在页面上放置一些内容,以便只有来自同一页面的帖子才有效。一些属性。让我回复您。
关于asp.net-mvc - ASP.NET MVC 如何避免直接调用 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11580175/