> Hi!
>
> I want my include-files not be seen from outside AND not be executed!!!
> I don't have access to a directory outside DOCUMENT_ROOT and I don't have
> .htaccess!!!
>
> I think about something like:
> 1.
> name: <file>.inc.php
> 2.
> add code:
> if ($PHP_SELF==MY_NAME) exit;
> as first line in the inluded script.
> so, if the script is being included from another script, the code will be
> executed - but if the file will be called directly, no code is executed!
> BUT - how do I get the include-file's name?
>
> or is it safe enough, to use something like
> if (substr($SCRIPT_URL,-8)==".inc.php") exit;

I'm not sure what is your $SCIRPT_URL is.
It could be not safe if user request like,

test.inc.php?abc=123
test.inc.php?SCRIPT_URL=123

Since it is comparing last 8 chars and it is not using
$HTTP_SERVER_VARS['SCRIPT_NAME']
(SCRIPT_URL is a typo of SCRIPT_NAME or SCRIPT_FILENAME??)

If I were you, I will put

if (substr($HTTP_SERVER_VARS['SCRIPT_NAME'], -8) == '.inc.php' )) {
   log_error('Bad request from '.HTTP_SERVER_VARS['REMOTE_ADDR']);
    header('400: Bad Request');
//  header('403: Forbidden'); // You might use this header instead or
redirect to your own warning page.
  exit;
}


If you can use $HTTP_SERVER_VARS, using it is safer.

Regards,

Yasuo Ohgaki

>
> thanks
> michi
>
> --
> Sent through GMX FreeMail - http://www.gmx.net
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
>
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to