我想知道在 asp.net mvc 环境中使用具有 action 属性的表单可能存在的风险?

例如;创建 View 在 html 标记上具有

任何人都可以使用 fiddler(例如)向 mydomain.com/Person/Create 发送帖子吗?

它在 Jquery ajax 脚本中也非常相似。 post 或 get 方法的名称在 html 标记上可见。每个人都可以看到我页面的 html 源代码。这意味着每个人都可以看到我的操作名称。

我怎样才能对这个问题有一个安全的方法?

当然我可以在 httppost 操作上有 Bind 属性。但我的愿望是让我的行动名称保密或有一个最佳实践想法。 (如果可能的话)

谢谢你所做的一切。

请您参考如下方法:

您无法隐藏您的行为,但您可以使用 ASP.NET 的内置防伪 token 在这方面完成基本的安全策略。 https://msdn.microsoft.com/en-us/library/dd470175(v=vs.118).aspx

在您的表单中,使用内置的 HTML Helper 放置一个标记:

@Html.AntiForgeryToken() 

然后在你的 Action 上,放置一个相应的属性:

[ValidateAntiForgeryToken] 
[HttpPost] 
[Authorize] 
public ActionResult Edit() 

现在您不应该能够针对您的 Controller 操作模拟 POST 请求。

...正如 Sedat 在下面正确指出的那样:绝对且显然,是的,如果您不希望它们由普通大众。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!