Jump to content

[SOLVED] Filtering Input: File names


br0ken

Recommended Posts

you say 'such as'...does that mean there is a list? i would just make an array of possible values and use in_array() to make sure it's in there

 

or, use regex to make sure it's something good:

if(!preg_match('/^\w+$/',$_GET['q'])) die("That is not valid");

Unfortunately the value could be anything as the user creates custom files.

 

My thoughts were to use urldecode(), realpath() and then basename().

 

Once this has been done, I would use file_exists() to check whether the file exists.

 

Would this be a good solution?

you don't need urldecode(), as anything that comes into $_GET is already decoded by PHP. the easiest thing (in my opinion) is to just replace any unwanted characters with an underscore. so, usually i do this:

 

$q = preg_replace('/[^\w]/','_',$_GET['q']);
$fname = $path.$q.".txt";

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.