【问题标题】:ASP.NET MVC POST action request protectionASP.NET MVC POST 动作请求保护
【发布时间】:2012-12-30 02:01:10
【问题描述】:

假设我有一个 HTTP POST 操作,其方法签名为:

RegisterUser(string email, string password)

此方法的实现会进行一些基本验证(例如,查看用户存储库中是否不存在电子邮件),然后将此信息作为记录存储在用户存储库中。

假设我接着从“注册”视图对该操作进行 AJAX 调用。如果某些恶意用户在客户端查看该视图的标记,他们将很容易看到 RegisterUser 操作的 URL 并确定他们需要传递给它的内容(电子邮件和密码)。

那么是什么阻止了该用户编写调用此操作 1 亿次的程序?我可以设置哪些安全防护措施?我应该在 ASP.NET MVC 中阅读哪些内容可以保护我免受此类 POST 攻击?

谢谢

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    我建议您在 IIS 中安装 Dynamic IP Restrictions 模块或在您的应用程序中实现 throttling solution。这将防止同一用户向控制器操作发送多个请求。但它不会保护您免受 DDOS 攻击,因为在此类攻击中,请求来自不同的 IP 地址。

    【讨论】:

    • 嗨达林。你能告诉我 IIS 的动态 IP 限制是否足以防止 DDoS 攻击?或者它只适用于简单的 DOS 攻击。谢谢
    【解决方案2】:

    您所描述的防止拒绝服务 (DOS) 攻击的最常见形式是使用某种类型的Captcha

    虽然this question 已经关闭,但它应该提供一些有用的信息来在 ASP.NET MVC 中实现它

    【讨论】:

    • 验证码?在登录表单上?来吧,那不会很用户友好。除了用户名和密码之外,您是否见过一个网站要求您提供验证码?
    • @DarinDimitrov OP 提到了 RegisterUser 操作和注册视图。我不认为假设我们在这里讨论注册而不是登录是一个巨大的飞跃。验证码是完全合理的。
    • 谢谢 Daz,当我在我的应用程序中处理注册功能时,我遇到了这个问题,因此我将其用作示例 - 对于这种特殊情况,使用验证码将是一个很好的解决方案 - 谢谢.这个问题也适用于这个特殊情况(保护任何行动)之外,我认为达林也为此提供了一个很好的解决方案。谢谢。
    猜你喜欢
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 2016-08-12
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    相关资源
    最近更新 更多