如何实现一个不会成为我们网站DoS工具的slowban?
问题是服务http响应的故意延迟将使服务器资源忙(Web服务器线程和可能的其他子系统).
CVE-2021-33623指出以下代码(在此提交中修复,包括测试用例)存在与 ReDoS 相关的问题:
trimNewlines.end = string => string.replace(/[\r\n]+$/, '');
Run Code Online (Sandbox Code Playgroud)
但究竟为什么它容易受到 ReDoS 攻击?
我正在通过Richard Stevens的UNIX网络编程第1卷工作,并尝试编写使用Telnet协议的TCP Echo客户端.我还处于早期阶段并尝试编写读写函数.
我想把它写成使用I/O Multiplexing和Select函数,因为它需要是多客户端的,我不想尝试学习C++线程,而我正在尝试学习Berkeley套接字库同时.在关于I/O多路复用的章节结束时,史蒂文斯有一小部分关于DOS攻击,他说我计划使用的方法容易受到DOS攻击的影响,只需在连接后发送一个字节然后挂起.之后他提到了3种可能的解决方案 - 非阻塞IO,线程化(输出)以及在I/O操作上设置超时.
我的问题是,还有其他方法可以避免这种攻击吗?如果没有,哪一个是最好的?我浏览了关于操作超时的部分,但它看起来不像我想做的事情.他建议的方法看起来相当复杂,我不知道如何将它们用于我已有的方法.我只看了一眼有关NIO的章节,它看起来就像是现在的方式,但是我想看看是否还有其他方法可以解决这个问题,然后再花几个小时来讨论这一章.
有任何想法吗?
c++ networking denial-of-service nonblocking berkeley-sockets
我正在寻找一个servlet过滤器库,帮助我保护我们的Web服务免受未经授权的使用和DDoS.
我们为我们的Web服务提供了"授权客户",因此理想情况下,过滤器可以帮助检测未经授权或行为不当的客户端,或者使用同一帐户检测多个人.此外,我们需要一种方法来防止各种服务的DoS,因为我们有一个开放帐户策略 - 限制用户的同时连接数等.
我们已经看过Tomcat LockOutFilter等等,但这些都是相当原始的,只能防止一种攻击.
当然,解决方案中有许多特定于应用程序的组件,但我想知道是否有人编写了一个通用解决方案作为起点.
我可以使用哪些工具或技术来保护我的 ASP.NET Web 应用程序免受拒绝服务攻击
我们有一个遗留的ASP.NET站点,它使用加密方法:
http://www.codekeep.net/snippets/af1cd375-059a-4175-93d7-25eea2c5c660.aspx
当我们调用以下方法时,页面加载速度非常慢,最终返回Connection Reset:
Decrypt(" ", true);
Run Code Online (Sandbox Code Playgroud)
如果在后续页面请求中多次调用该方法,则应用程序池将关闭.
这发生在运行.NET framework v3.5的Windows 2008服务器上.
我把问题缩小到了TransformFinalBlock()电话.
注意:在Cassini上,我没有连接超时; 而是抛出以下异常:
System.Security.Cryptography.CryptographicException: Bad Data
Run Code Online (Sandbox Code Playgroud)
在其他字符串中调用Decrypt()会导致任何环境都没有问题.
为什么会这样?这是TripleDESCryptoServiceProvider中的错误吗?
显然,我可以过滤cipherString来拒绝""并避免这个特殊问题.但是,我担心我不怀疑的其他一些cipherString值会导致DoS.
更新2011.06.28
以下是重现该问题的最小代码:
// problem occurs when toEncryptArray is an empty array {}
byte[] toEncryptArray = {};
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
byte[] keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes("dummy_key"));
hashmd5.Clear();
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Key = keyArray;
tdes.Mode = CipherMode.ECB;
tdes.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = tdes.CreateDecryptor();
// the following line can crashes the ASP.NET Application Pool (may …Run Code Online (Sandbox Code Playgroud) 如何保护Web服务/ WebBroker应用程序免受拒绝服务攻击?攻击导致IIS在同一时刻创建大量的webbroker实例.在新请求到来之前,webbroker没有足够的时间来启动和响应.这有时会导致网络经纪人崩溃.是否存在某种对每分钟请求的限制或某种方式将请求放入队列?
谢谢.
由于DOS攻击,我无法访问Plesk Amdin; 我可以通过SSH阻止主机名或IP地址吗?如果是这样,我怎么能这样做?
谢谢!
我最近在Play框架中遇到了请求队列的问题.当服务器过载并且无法按时处理请求时,请求将被放入队列中.即使请求者断开连接请求仍然留在队列中并且将由控制器处理.在压力测试期间,控制器甚至在30分钟前就收到了请求.
这会导致拒绝服务.是否可以设置请求队列深度或请求生存时间?
任何其他解决方案也将受到赞赏.
denial-of-service httprequest akka playframework playframework-2.2
我们有一个Web应用程序托管在Azure上,并对它运行Qualys安全扫描,告诉我们该应用程序容易受到HTTP Slow Post攻击。Qualys的分析告诉我们,它能够使连接保持打开状态超过2分钟,这使我们容易受到拒绝服务攻击的攻击。为了尝试解决该问题,我们对web.config文件和applicationhost.config文件进行了编辑。我们已经相应地设置了允许的maxAllowedContentLength,connectionTimeout,headerWaitTimeout和minBytesPerSecond属性,以便在达到2分钟之前终止连接。
即使已完成所有这些设置,Qualys扫描仍显示我们很脆弱,并且连接保持打开状态超过2分钟。我们发现此问题的一个可能原因是,我们的站点前面有一个天蓝色的负载均衡器,并且负载均衡器的连接超时只能设置为4分钟到30分钟之间的值(高于Qualys抱怨的2分钟)关于)。
Qualys扫描是否有可能触及负载平衡器,并可能给人一种我们处于脆弱状态的印象?我希望有人对此有所了解,如果负载均衡器不是问题,可能是其他原因或可能的解决方案?
security ×3
asp.net ×2
akka ×1
apache ×1
azure ×1
c++ ×1
cryptography ×1
ddos ×1
delphi ×1
encryption ×1
httprequest ×1
iis ×1
java ×1
javascript ×1
networking ×1
nonblocking ×1
plesk ×1
regex ×1
response ×1
servlets ×1
ssh ×1
tripledes ×1
webbroker ×1