[php] Inhoud verbergen

Pagina: 1
Acties:
  • 191 views sinds 30-01-2008
  • Reageer

  • simon
  • Registratie: Maart 2002
  • Laatst online: 23:15
Ik gebruik een loggertje die bijhoud wanneer bepaalde (flat-file) pagina's worden bijgewerkt.
Die werkt als volgende:
PHP:
1
<?$bestand = "../../../log.php"; $inhoud_bestand = file($bestand);  $schrijf_bestand = fopen($bestand,"a+");fwrite ($schrijf_bestand, "$log"); fclose ($schrijf_bestand);?>

Waarbij $log de gelogde inhoud is. Maar nu is de uitvoer (log.php) soms niet iets wat iedereen mag zien. Maar log.php zelf is door iedereen te bekijken, het werkt niet met variabelen. Hoe maak ik log.php zo dat het niet te zien is (of hoe verander ik de rest zo dat het voor buitenstaanders).

|>


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Ten eerste zou ik log.php niet .php noemen, het is toch geen php script?

Als je wilt dat niemand het kan zien, zou je het bijvoorbeeld kunnen chmod'en of in een beveiligde dir zetten.

  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

Of het juist wel een PHP file maken, maar met een fout op de eerste regel beginnen: Iedereen krijgt in plaats van de inhoud de foutmelding te zien (of gewoon een exit("He, blijf hier weg!") als eerste functie ofzo...

If nothing is written below, I was the last to reply...


  • simon
  • Registratie: Maart 2002
  • Laatst online: 23:15
Op vrijdag 28 juni 2002 16:08 schreef eamelink het volgende:
Ten eerste zou ik log.php niet .php noemen, het is toch geen php script?

Als je wilt dat niemand het kan zien, zou je het bijvoorbeeld kunnen chmod'en of in een beveiligde dir zetten.
Domme vraag:
Als ik het heb gechmod, en ik include em vanuit php dan werkt et wel?

|>


  • simon
  • Registratie: Maart 2002
  • Laatst online: 23:15
Op vrijdag 28 juni 2002 16:10 schreef RainManX het volgende:
Of het juist wel een PHP file maken, maar met een fout op de eerste regel beginnen: Iedereen krijgt in plaats van de inhoud de foutmelding te zien (of gewoon een exit("He, blijf hier weg!") als eerste functie ofzo...
Dat kan dus nie, want ik wel et wel kunnen includen.

|>


  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

Op vrijdag 28 juni 2002 16:11 schreef Jackabuzah het volgende:

[..]

Dat kan dus nie, want ik wel et wel kunnen includen.
Dan bouw je een filter erin, iets met wachtwoord of IP adres ofzo, en als dat fout is doe je de exit, en anders laat je alles zien...

Zoiets dus:
code:
1
2
3
4
5
6
7
<?php
if($ipadres != 123.123.123.123)
  exit("Sorry, dit is niet bedoeld voor U.");
?>
loggegevens
loggegevens
loggegevens

Je moet in ieder geval een soort identificatie hebben, anders kan je ook niet bepalen wie er wel bij mag.

If nothing is written below, I was the last to reply...


Verwijderd

Geen superveilige oplossing, maar je zou een soort van wachtwoord kunnen gebruiken. Dan roep je de file zo aan:
code:
1
2
$pass="blaat";
include("log.php");

Dan kun je bovenaan in log.php zetten:
PHP:
1
<?if($pass!=blaat){  echo"Helaas";  exit;}?>

edit: RainManX was me voor

Verwijderd

Je kan includen vanaf een niet direct vanaf het web bereikbare plaats op de server dus bijv. naast je webmap.

****/domain/webmap/script.php
****/domain/logs/log.php

Duidelijk :?

edit:
+ uitlegje

  • simon
  • Registratie: Maart 2002
  • Laatst online: 23:15
Op vrijdag 28 juni 2002 16:18 schreef Lusch het volgende:
Geen superveilige oplossing, maar je zou een soort van wachtwoord kunnen gebruiken. Dan roep je de file zo aan:
code:
1
include("log.php?pass=blaat");

Dan kun je bovenaan in log.php zetten:
PHP:
1
<?if($pass!=blaat){ echo"Helaas"; exit;}?>

edit: RainManX was me voor
Lijkt me veilig genoeg, ik verander ook de bestandsextensie maar.

|>


  • flat
  • Registratie: Mei 2000
  • Niet online
ik zou gewoon .htaccess gebruiken, dan kan je ook nog instellen dat bepaalde personen de handel tóch mogen bekijken (zou handig kunnen zijn)

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • simon
  • Registratie: Maart 2002
  • Laatst online: 23:15
Hoe maak ik een .htacces bestand onder windows? Windows accepteert geen bestanden met geen letters voor de punt.

|>


  • simon
  • Registratie: Maart 2002
  • Laatst online: 23:15
Op vrijdag 28 juni 2002 16:18 schreef Lusch het volgende:
[...]
Als ik dat dus doe krijg ik:
code:
1
2
3
Warning: Failed opening 'log.php?pass=woei' for inclusion (include_path='.; 
\apache\includes;\apache\htdocs\;\apache\htdocs\phpmyadmin')
 in C:\apache\htdocs\kamers\nhegmond\logger.php on line 4

edit:
ff de layout minder vern**ken :)

|>


  • flat
  • Registratie: Mei 2000
  • Niet online
Op vrijdag 28 juni 2002 16:46 schreef Jackabuzah het volgende:

[..]

Als ik dat dus doe krijg ik:
code:
1
Warning: Failed opening 'log.php?pass=woei' for inclusion (include_path='.; \apache\includes;\apache\
da's logisch, je kan helemaal geen variabelen "meesturen" als je include
gewoon zoiets maken (als je die methode wil blijven gebruiken)
PHP:
1
<?$pass=blaat;include log.php;?>

edit: lekker sneller dan D2k :P

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

PHP:
1
<?$pass=blaatinclude("log.php");?>

zo moet dat

Doet iets met Cloud (MS/IBM)


  • simon
  • Registratie: Maart 2002
  • Laatst online: 23:15
Op vrijdag 28 juni 2002 16:50 schreef D2k het volgende:
PHP:
1
<?$pass="blaat"include("log.php");?>

zo moet dat
Thnx. Het moest wel "blaat" zijn. :) Het werkt :).

|>


Verwijderd

Ik had een smerigere oplossing bedacht... die heb ik tenminste een keer gebruikt:
PHP:
1
<?/* LOGLOGLOG*/?>

en dan gewoon alleen de tweede t/m de 1 na laatste regel inlezen...

of het opslaan als:
PHP:
1
<?$log=" LOGLOGLOG";?>

en dan de variabele $log gebruiken...

  • sjroorda
  • Registratie: December 2001
  • Nu online
Maar waarom niet gewoon de oplossing van eamelink (chmod)??? Dit lijkt mij het makkelijkst, snelst, handigst, best, ... :?

Verwijderd

Als je het chmod zodat je het niet kan zien kan je het ook niet meer includen?! php werkt toch ook onder user nobody ...

  • sjroorda
  • Registratie: December 2001
  • Nu online
Op vrijdag 28 juni 2002 18:29 schreef zellufs het volgende:
Als je het chmod zodat je het niet kan zien kan je het ook niet meer includen?! php werkt toch ook onder user nobody ...
nee, gaat wel goed: zelf zit ik meestal met het omgekeerde probleem: ik maak een logfiletje aan en vervolgens kan ik het niet via ftp binnenhalen omdat de rechten verkeerd staan.

Maar dit kan trouwens ook aan de php-instellingen liggen???

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Op vrijdag 28 juni 2002 18:31 schreef sjroorda het volgende:
ik maak een logfiletje aan en vervolgens kan ik het niet via ftp binnenhalen omdat de rechten verkeerd staan.
Het logfile'tje is dan van de apache-user (meestal nobody). Jij bent dus niet de owner, mag je hem niet bekijken. Dus je zou bijvoorbeeld zelf dat bestandje neer kunnen zetten, en php hem laten veranderen (dan blijft hij van jouw.)
Op vrijdag 28 juni 2002 18:29 schreef zellufs het volgende:
Als je het chmod zodat je het niet kan zien kan je het ook niet meer includen?! php werkt toch ook onder user nobody ...
Daarom moet je ook chmod doen, en geen chown :)

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 05-06 07:37
Op vrijdag 28 juni 2002 16:45 schreef Jackabuzah het volgende:
Hoe maak ik een .htacces bestand onder windows? Windows accepteert geen bestanden met geen letters voor de punt.
in Command Prompt kan het.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ik vind de netste oplossing hiervoor trouwens het plaatsen van dat ding buiten je webroot.

Dan kan men er nooit aankomen, zelfs niet als php een keertje niet blijkt te werken, of als je een foutje maakt in je scriptje.

  • EgoH
  • Registratie: Oktober 2001
  • Laatst online: 01-09 09:45
Op zondag 30 juni 2002 12:32 schreef ACM het volgende:
Ik vind de netste oplossing hiervoor trouwens het plaatsen van dat ding buiten je webroot.

Dan kan men er nooit aankomen, zelfs niet als php een keertje niet blijkt te werken, of als je een foutje maakt in je scriptje.
Buiten je html dir ja, of een htacces deny all erop. :7

Verwijderd

Hmm...kan je niet gewoon het standaard authorize scriptje copy-pasten uit de (geannoteerde) php manual ? :)
Geen probleem met mensen die het zomaar lezen , include gaat prima, en het staat nog grappig ook zo'n inlog schermpje. En natuurlijk, super veilig is het niet, maar ik neem aan dat je niet echt erg veel gevoelige defensie geheimen gaat loggen.

  • om3ega
  • Registratie: Maart 2001
  • Laatst online: 01:06
Op zondag 30 juni 2002 12:32 schreef ACM het volgende:
Ik vind de netste oplossing hiervoor trouwens het plaatsen van dat ding buiten je webroot.

Dan kan men er nooit aankomen, zelfs niet als php een keertje niet blijkt te werken, of als je een foutje maakt in je scriptje.
I agree..

Die fout heb ik een keer gemaakt. Mijn hoster had de *.php extensie na een upgrade vergeten weer door de parser te gooien .. gevolg.. alle scripts lagen open en bloot :)

Nu gebruik ik ook includes voor gevoelige info , buiten het bereik van de webserver.
Pagina: 1