Hi Maxim,<br><br><div class="gmail_quote">On Fri, Mar 15, 2013 at 10:46 AM, Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello!<br>
<div><div class="h5"><br>
On Fri, Mar 15, 2013 at 09:59:57AM -0700, Dave Bailey wrote:<br>
<br>
> Hi,<br>
><br>
> I would like to apply a filter to the request body as it is read from the<br>
> client, but before it is sent upstream.  So in the various proxy module<br>
> input filters, when the input ngx_buf_t are initialized and pushed onto the<br>
> input buffer chain, I would like to pass them through my filter at that<br>
> time, so that the input buffer chain contains the buffers that my filter<br>
> generates from the original input buffers.  My filter might also (based on<br>
> its input) choose to finalize the request with a status code 403 or similar<br>
> (e.g. if the input is deemed to be malicious, etc) before the upstream<br>
> connection is made.<br>
><br>
> My questions:<br>
><br>
> 1) Is anything like this currently being developed?<br>
> 2) If not, could I try to provide a patch?<br>
<br>
</div></div>There is an experimental patch which introduces request body<br>
filters (attached).  It was written with chunked input support,<br>
but wasn't committed as there is no clear understanding it should<br>
work this way.<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br>Thank you for the patch.  For what it's worth, it seems ideal to me, as it provides an interface that's consistent with the other filter interfaces for headers and response body, and it is applied to the request body before the buffers may hit the disk.  I could see a lot of great functionality taking advantage of this new interface, e.g. WAF inspection of the request body, encryption and/or encoding or other transformation of form data, etc.  Please consider this email as a vote to commit the patch.  In the meantime, I will try it out.<br>
<br>-dave<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/en/donation.html" target="_blank">http://nginx.org/en/donation.html</a><br>
</font></span><br>_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br></blockquote></div><br>