Probably the best thing is to do something like:

$index = array('index' => 'index.php', 'hs' => 'highschool.php', ...);

if (isset($index[$_GET['body']]) {
  include($index[$_GET['body']]);
}

Then, only pages specifically listed in $index get included.

David Phillips said:
> Chad Walstrom writes:
>> Can you build a dictionary list corresponding to the filenames so that
>> the visible URL that people see is something like
>> "http://domain.tld/location/FISH4310PREL2Q0OU", or submit the form
>> variable as the hash.  Then find the file based on the hash...?
>
> That's not a great method, because you then need to store a list of all
> the hashes and their corresponding values.  Unless you aren't using a
> secure hash, in which case you are relying on security through
> obscurity.
>
> What you want to do here is authenticate the filename passed.  In other
> words, you want to make sure that you generated the filename and it has
> not been tampered with.
>
> To do this, use a secure hash function such as MD5 or SHA1.  Pick a
> random string to use as a key.  Prepend this key to your filename and
> generate a hash for the string.  Include both the filename and the hash
> as variables. To determine if a passed filename is trusted, perform the
> same procedure as above and compare the generated hash to the passed
> hash.  If they match, it means the filename can be trusted.
>
> I actually wouldn't use this method here.  In fact, it looks like the OP
> should be using SSI instead of PHP.  But at any rate, he is violating a
> fundamental programming rule, especially for web applications:
>
> NEVER TRUST USER INPUT
>
> In his case, a simple basename() call would have prevented the problem.
>
> --
> David Phillips <david at acz.org>
> http://david.acz.org/
>
>
> _______________________________________________
> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
> http://www.mn-linux.org tclug-list at mn-linux.org
> https://mailman.real-time.com/mailman/listinfo/tclug-list




_______________________________________________
TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
http://www.mn-linux.org tclug-list at mn-linux.org
https://mailman.real-time.com/mailman/listinfo/tclug-list