ASP.NET MVC应用程序安全性

4 asp.net asp.net-mvc

今天我测试我的ASP.NET MVC网络应用程序,我发现任何人都可以轻松提交我们的网站形式,而无需访问我的网站?

例如: example.com/home/test

[HttpPost]
public ActionResult Test(string name)
{
    return View("home");
}  

<form id="myForm" method="post" action="example.com/home/test">
    <input type="text" name="name" />
    <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

如果其他网站制作此表格,当用户填写我的网站将影响的表格.

我是否可以通过我的网站或其他方式检查用户提出的请求.

DM.*_*DM. 6

听起来您可能正在寻找一些跨站点请求伪造(CSRF)帮助.ASP.NET MVC有一个非常简单的工具来帮助它:

如果您<%= Html.AntiForgeryToken() %>在提交的表单中包含:则可以使用该[ValidateAntiForgeryToken]属性标记您的操作方法,并且可以很好地处理停止CSRF攻击.不要相信我的话,请查看史蒂夫桑德森关于它的[旧]博客文章,它应该包含你需要的所有背景和信息.

http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/