我目前正在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/