limit_rate dynamically using $arg - security
Maxim Dounin
mdounin at mdounin.ru
Thu Apr 5 14:44:04 UTC 2012
Hello!
On Thu, Apr 05, 2012 at 07:26:06AM -0400, shoshomiga wrote:
> Jonathan Matthews Wrote:
> -------------------------------------------------------
> > On 4 April 2012 21:40, shoshomiga
> > <nginx-forum at nginx.us> wrote:
> > > I've been looking for a way to limit videos to
> > their bitrate to save
> > > bandwidth and I've come up with this code
> > >
> > > if ($arg_LIMITSPEED) {
> > > set $limit_rate
> > $arg_LIMITSPEED;
> > > }
> > >
> > > It works but I would like to know if this code
> > would be secure to use on
> > > a production server.
[...]
> By security I meant vulnerability to buffer overflows and other exploits
> since limit_rate is probably not meant to recieve that kind of
> unsanitized input.
It should be safe. Note though that it will log error if there
are invalid values passed, which may in turn be used as a DoS
vector.
To be on safe side, I would recommend sanitizing the input, e.g.
with map{}. Something like this should work:
map $arg_speed $speed {
default 64k;
64k 64k;
128k 128k;
256k 256k;
}
...
set $limit_rate $speed;
Maxim Dounin
More information about the nginx
mailing list