RE: [PHP] Security of PHP code

From: Date: Thu, 05 Jul 2001 08:28:21 +0000
Subject: RE: [PHP] Security of PHP code
Groups: php.general 
Request: Send a blank email to php-general+get-56279@lists.php.net to get a copy of this message
http://php.net/realpath $allowed_path = '/www/sites/mysite/teaching'; $file = realpath($file); if(ereg("^$allowed_path", $file)) { // it's OK } else { // possible attack! } > -----Original Message----- > From: Steve Werby [mailto:steve-lists@befriend.com] > Sent: 5 iulie 2001 02:22 > To: Sascha Schumann > Cc: Jon Haworth; 'Hankley, Chip'; PHP Mailingliste > Subject: Re: [PHP] Security of PHP code > > > "Sascha Schumann" <sascha@schumann.cx> wrote: > > On Wed, 4 Jul 2001, Steve Werby wrote: > > > > > "Jon Haworth" <jhaworth@witanjardine.co.uk> wrote: > > > > Yes, I would have thought this would do it: > > > > > > > > if (strstr($file, "/usr/local/apache/htdocs/") { > > > > show_source($file); > > [..] > > > Something along those lines will work. Without some kind > of limitations > > > built in, the page will be able to load any file that's > world-readable > so > > > it's a good idea to limit access to certain directories > or hardcode the > > > directory you want to give access to. > > > > Imagine someone passing in > > /usr/local/apache/htdocs/../../../../etc/passwd as path.. > > Excellent point. In addition to hardcoding the path I would > do something to > ensure that the file requested does not attempt to bypass > that directory. > I'd probably use a regex to make sure it doesn't include a > "/" or if I want > to serve files from a deeper directory I'd do a regex or use > something like > strstr() to see if ".." is within the filename. Personally, > I wouldn't make > a script that outputed a file on the server or a script's > code *and* allowed > the user to dictate what file was accessed. > > -- > Steve Werby > President, Befriend Internet Services LLC > http://www.befriend.com/ > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net > For additional commands, e-mail: php-general-help@lists.php.net > To contact the list administrators, e-mail: > php-list-admin@lists.php.net > >

« previous php.general (#56279) next »