通过AJAX的ASP.net MVC AntiForgeryToken

标签 asp.net asp.net-mvc ajax security

我目前正在ASP.net中开发MVC应用程序。我正在使用AJAX.ActionLink在记录列表中提供删除链接,但是这是非常不安全的。我把这个:

<AcceptVerbs(HttpVerbs.Post)>

在函数上执行删除操作,这将阻止仅通过URL调用该函数。但是,仍然存在的另一个安全漏洞是,如果我要制作具有以下内容的基本html页面:
<form action="http://foo.com/user/delete/260" method="post">
<input type="submit" />
</form>

仍然会在不同的位置执行帖子。

是否可以将AntiForgeryToken与AJAX ActionLink一起使用?如果是这样,这是一种安全的方法吗?我还没有意识到更多的安全漏洞吗?

最佳答案

我不特别了解AJAX ActionLink,但是可以从WebForms页面将其发布到具有[AcceptVerbs(HttpVerbs.Post), ValidateAntiForgeryToken]属性的MVC操作中。

您可以使用反射来获取用于设置Cookie的MVC方法以及用于MVC验证的匹配表单输入。

看到这个答案:Using an MVC HtmlHelper from a WebForm

关于通过AJAX的ASP.net MVC AntiForgeryToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1346070/

相关文章:

javascript - 使用 knockoutjs 操作 View 模型

asp.net - 使用代理ASP.NET更改YouTube URL

c# - 将图像传递到服务器的最佳方式?

asp.net - 设置默认值——表示逻辑还是业务逻辑?

asp.net-mvc - 我可以在不加载整个集合的情况下删除单个子实体吗?

javascript - 访问纽约时报 API 和维基媒体 API 之间的区别?

javascript - 如何在同一个函数中进行 100 次调用以迭代 api 端点? [波卡皮]

php - Ajax 下拉列表不起作用

javascript - 如果我没有域,如何将 CORS header 添加到我的 REST API?

html - 使用 Datalist 显示带有以下 HTML 代码的产品