2012-12-29 78 views
0

想象我有一个方法签名HTTP POST动作:ASP.NET MVC POST操作请求保护

RegisterUser(string email, string password) 

这种方法的实现做了一些基本的验证(例如,看电子邮件没有按” t已经存在于用户存储库中),然后将此信息作为记录存储在用户存储库中。

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

然后,什么是阻止该用户写一个程序来调用这个动作一亿次?我可以安装哪些安全防护装置?有什么我应该读的ASP.NET MVC中,将保护我免受这种POST攻击吗?

感谢

回答

2

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

+0

嗨达林。你能告诉我如果动态IP对IIS的限制足以防止DDoS攻击?或者它只适用于简单的DOS攻击。谢谢 –

1

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

虽然this question已经关闭它应该提供对ASP.NET MVC

内实施这一
+0

验证码?在登录表单上?来吧,这不会很人性化。除了用户名和密码之外,您是否看到过网站要求您提供验证码? –

+1

@DarinDimitrov OP提到了一个注册用户操作和注册视图。我认为这不是假设我们正在讨论注册而不是登录的巨大飞跃。验证码是完全合理的。 –

+0

感谢Daz,当我在我的应用程序中处理注册功能时,问题出现在我的面前,因此为什么我以此为例 - 使用captcha将是此特定情况的一个很好的解决方案 - 谢谢。这个问题也适用于这种特殊情况之外(保护任何行动),我认为Darin也为此提供了一个很好的解决方案。谢谢。 – DotNetDeveloper