Re: Newbie Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, May 1, 2005 7:43 pm, Thomas Bonham said:
> <?php
>               if(isset($_GET ['page']))
>                   {include($_GET ['page'].".php");}

So, what happens when I decide to use:
http://bonhamlinux.org?page=secret

If you have a file named secret.php, I just loaded it.

More importantly, I loaded it, but you've never really PLANNED on my
loading it, at least not as a link "target"

So all kinds of PHP code is being executed all out of context, and out of
order, from what you expected.

This is a good way for somebody to poke and peek and trash your site --
Just by executing your code in unexpected order/pre-conditions.

You probably have a limited number of pages you are serving up this way.

Do something like this:

$valid_pages = array_flip(array('main', 'links', 'contact'));
$page = isset($_GET['page']) ? $_GET['page'] : 'home';
if (isset($valid_pages[$page])){
  require "$page.php";
}
else{
  //maybe log hack attempt here
  require "home.php";
}

Now people can *ONLY* load the pages you expect them to load, not just any
old chunk of PHP you happen to have laying around on your server, whether
you expected them to load it or not.

-- 
Like Music?
http://l-i-e.com/artists.htm

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux