<div dir="ltr"><div><div><div><div><div>Hi,<br><br></div><div>The scenario which I mentioned was only tested and reported by imperva and Nginx has said that they have solved this slow read issue.<br></div><div>References:<br></div><a href="http://www.imperva.com/docs/Imperva_HII_HTTP2.pdf">http://www.imperva.com/docs/Imperva_HII_HTTP2.pdf</a><br><a href="https://www.nginx.com/blog/the-imperva-http2-vulnerability-report-and-nginx/">https://www.nginx.com/blog/the-imperva-http2-vulnerability-report-and-nginx/</a><br><br></div>But as you say, the problem still persists? We can prevent a single client from requesting large amount of resources but what if the attacker uses multiple machines to make an attack?<br></div>Is there any check in nginx to examine the client's initial congestion window setting and close the connection if it says initial congestion window size to be less than 65,535 bytes (as mentioned in <a href="https://tools.ietf.org/html/rfc7540#section-5.2.1">RFC</a> as this to be the minimum initial congestion window size). <br><br></div><div>P.S. Please correct me if I misunderstood. Thank you for your responses :)<br><br></div>Thanks,<br></div>Sharan<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 19, 2016 at 7:21 PM, Валентин Бартенев <span dir="ltr"><<a href="mailto:vbart@nginx.com" target="_blank">vbart@nginx.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Friday 19 August 2016 18:07:46 Sharan J wrote:<br>
> Hi,<br>
><br>
> Thanks for the response.<br>
><br>
> Would like to know what happens in the following scenario,<br>
><br>
> Client sets its initial congestion window size to be very small and<br>
> requests for a large data. It updates the window size everytime when it<br>
> gets exhausted with a small increment (so send_timeout wont happen as<br>
> writes happens always but in a very small amount). In this case won't the<br>
> connection remain until the server flushes all the data to the client which<br>
> has very less window size?<br>
<br>
</span>The same is true with HTTP/1.x, there's no difference.<br>
<span class=""><br>
><br>
> If the client opens many such connections with many streams, each<br>
> requesting for a very large data, then won't it cause DOS?<br>
><br>
<br>
</span>You should configure other limits to prevent client from requesting<br>
unlimited amounts of resources at the same time.<br>
<div class="HOEnZb"><div class="h5"><br>
  wbr, Valentin V. Bartenev<br>
<br>
______________________________<wbr>_________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx</a><br>
</div></div></blockquote></div><br></div>