今天我测试我的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)
如果其他网站制作此表格,当用户填写我的网站将影响的表格.
我是否可以通过我的网站或其他方式检查用户提出的请求.
听起来您可能正在寻找一些跨站点请求伪造(CSRF)帮助.ASP.NET MVC有一个非常简单的工具来帮助它:
如果您<%= Html.AntiForgeryToken() %>在提交的表单中包含:则可以使用该[ValidateAntiForgeryToken]属性标记您的操作方法,并且可以很好地处理停止CSRF攻击.不要相信我的话,请查看史蒂夫桑德森关于它的[旧]博客文章,它应该包含你需要的所有背景和信息.
使用[Authorize]筛选器可防止匿名用户访问控制器或操作.
| 归档时间: |
|
| 查看次数: |
436 次 |
| 最近记录: |