为了防止在我的ASP.NET C#应用程序中出现DOS攻击,我在这篇文章的帮助下实现了对Jarrod的回答。
Best way to implement request throttling in ASP.NET MVC?
但是这会使用IP地址,这使得它很容易受到可以轻松更改它的高级攻击者的攻击。识别匿名用户的另一个选择是使用他们的会话ID。
我认为在用户重新启动浏览器之前无法更改,因此它可以是一个很好的选择。但从安全的角度来看,我不确定。请告诉我是否安全使用它?如果没有,那么还有其他方法可以达到这个目的吗?感谢
编辑:
有些方法需要更长的油门。这就是为什么我需要一个大约5秒到2分钟的程序化油门。我已经为IIS配置了Dynamic Ip限制,但是我无法为它指定这么长的时间。
答案 0 :(得分:1)
我认为你的术语可能会混淆不清。 DoS是拒绝服务。更改多个记录或请求功能的人不是DoS攻击,通常,大多数DoS攻击是分布式的,因此是DDoS。
根据您提供的链接请求的限制称为限制...但正如其他人所建议的那样,sessionid只是在cookie中传递的值,可以轻松修改以绕过检查,就像您可以简单地一样在请求前放置一个代理来掩盖请求之间的源IP。
因此,如果您只希望加油,那么您需要在要保护的功能之前实施身份验证,请使用您发布的限制代码,并且可能还有一个CSRF令牌。
但是......如果你想停止DDoS,它将不会发生在第7层,因为数据已经在服务器上了。