Toon posts:

[php] checken of de file wordt geïnclude() ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb dus een file config.php waar wat paswoord en andere gegevens instaan. Deze wordt geïnclude() in enkele andere php files.

Stel nu dat iemand config.php zou requesten in zijn browser, dan zou die dus niets zien, omdat alles in variabelen staat.

Nu wou ik dan een 404 message weergeven, dus heb
code:
1
2
3
4
5
6
7
8
9
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /woei was not found on this server.<P>
<HR>
<ADDRESS>Apache/1.3.19 Server at www.pixelcoders.f2s.com Port 80</ADDRESS>
</BODY></HTML>

in die config.php file geplakt. Nu wordt die uiteraard altijd geprint, ook al wordt hij geïnclude.
Is het nu mogelijk om te checken of de file geïnclude() wordt of via de browser geopend?

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Is het niet beter om gewoon een 404 error terug te geven, dan krijg je ook de juiste IE error's.

Nu je probleem: kun je niet de rechten instellen op die file dat hij niet leesbaar is voor het publiek? Dan krijg je Access Forbidden.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

• zorg dat de config.php er zoiets uit ziet:
code:
1
2
3
<? die('I dont think so!!');?>
$password = "blaat"
$server = "mysql.mydomain.com";


• lees de text van je php file in naar een variabele met Fopen(); (geen include dus), strip de eerste regel ervanaf, en daarna eval($variabele);

als de file nu rechtstreeks aangeroepen wordt, krijg je de errormelding, als ie aangeroepen wordt vanuit jouw php, wordt de 1e regel niet uitgevoerd, en de rest gewoon geinclude :)

Stop uploading passwords to Github!


Verwijderd

Topicstarter
Op zondag 13 januari 2002 11:23 schreef jelmervos het volgende:
Is het niet beter om gewoon een 404 error terug te geven, dan krijg je ook de juiste IE error's.

Nu je probleem: kun je niet de rechten instellen op die file dat hij niet leesbaar is voor het publiek? Dan krijg je Access Forbidden.
wat bedoel je precies?

  • The Noid
  • Registratie: Januari 2000
  • Laatst online: 17-03-2011
Set in je hoofdscript een variabele

PHP:
1
2
3
<?
$script_started=TRUE;
?>

en check in je include of die variabele geset is

PHP:
1
2
3
4
5
6
7
<?
if ($script_started) {
    //je normale include
} else {
    //je error
}
?>

This must be that Woodstock place mom and dad are allways talking about


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op zondag 13 januari 2002 11:36 schreef Jppr het volgende:

[..]

wat bedoel je precies?
Dat je via FTP bijvoorbeeld de rechten van die include file insteld dat men er van buiten af niet bij kan.
Kan ook met htaccess maar is iets omslachtiger.

Zie als voorbeel: www.hottopic.nl/downloads.dat
Die kun je vanaf je browser niet openen maar vanuit PHP is ie prima te benaderen.

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Topicstarter
Op zondag 13 januari 2002 11:37 schreef The_Noid het volgende:
Set in je hoofdscript een variabele
PHP:
1
2
3
<?
$script_started=TRUE;
?>

en check in je include of die variabele geset is
PHP:
1
2
3
4
5
6
7
<?
if ($script_started) {
    //je normale include
} else {
    //je error
}
?>
deze ga ik doen denk ik.

ik heb al wel via een .htaccess het volgende gezet
code:
1
2
3
4
<Files config.php>
Order Deny,Allow
Deny From All
</Files>

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Werkt dat niet dan ofzo?

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

Topicstarter
Op zondag 13 januari 2002 11:43 schreef jelmervos het volgende:
Werkt dat niet dan ofzo?
nu ik erover nadenk idd. Het is een beetje zinloos. tja...sorry?

toch bedankt iig

Verwijderd

veel simpeler is gewoon om te kijken wat de naam van het bestand is wat via de browser wordt opgevraagt. Komt de naam overeen met de naam van het config bestand, dan weet je dus dat het config bestand alleen wordt opgevraagd en kun je die 404 html printen.

Komt de naam van het opgevraagde bestand niet overeen met de naam van het config bestand dan weet je dat alles goed is en hoef je verder niets te doen in het config bestand

Verwijderd

Topicstarter
Op zondag 13 januari 2002 12:20 schreef SurfingFromAM2PM het volgende:
veel simpeler is gewoon om te kijken wat de naam van het bestand is wat via de browser wordt opgevraagt. Komt de naam overeen met de naam van het config bestand, dan weet je dus dat het config bestand alleen wordt opgevraagd en kun je die 404 html printen.

Komt de naam van het opgevraagde bestand niet overeen met de naam van het config bestand dan weet je dat alles goed is en hoef je verder niets te doen in het config bestand
hoe doe je dat dan? gewoon met $PHP_SELF ofzo?

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Ja,

if($PHP_SELF == 'Ditbestand.php'){
// verzin hier ff de 404 header
}

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Er bestaat toch een functie om een lijst tegeven van included files?

Daarnaast zijn er ook functies om te controleren of een file bestaat (file_exists()) etc.
Doe daar wat nuttigs mee.
Pagina: 1