Versio

veiligheid .ini bestand

Overzicht Reageren

Marc Cools

Marc Cools

04/04/2009 09:18:00
Quote Anchor link
HI,

Ik wil een ini bestand gebruiken. Met de volgende code kan ik dat bestand in één keer omzetten naar een array. Heel handig!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$config
= parse_ini_file("geheim.ini");
?>

Het bestand 'geheim.ini' staat in een directory die publiek toegankelijk is. Een hacker die dat weet staan, kan gewoon intypen 'path/to/file/geheim.ini en de brouwser toont de inhoud van dat bestand. Oeps daar gaan mijn geheimen.
Dus ik dacht dat op te lossen door mijn bestand geheim.ini.php te noemen en de eerste regel als volgt te maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
; <?php die('No hacking.'); ?>


Let op: er staat een ; voor de php code.
De ; is voor parse_ini_file een commentaarlijn en zal de php code negeren.
De hacker die via zijn brouwser het bestand aanroept zal PHP aanroepen voor het bestand. de ; ziet hij als html tekst en output hij naar de brouwser, dan ziet hij de php tag en voert het commando die dat daar staat uit. Probleem opgelost. Of niet?
Welk veiligheidsprobleem zou ik nog kunnen hebben?
Kan het volgende bijvoorbeeld:
Een hacker maakt op zijn computer een php bestand waarbij hij de parse_ini_file instructie gebruikt en mijn bestandsnaam er aan koppelt. Zo komt hij toch aan de inhoud. Is dat mogelijk?

Marc.

edit: juiste tag om de ; binnen de code te zetten.
Gewijzigd op 01/01/1970 01:00:00 door Marc Cools
 
PHP hulp

PHP hulp

25/05/2012 17:30:31
Gesponsorde koppelingen:
 
Midas

Midas

04/04/2009 09:25:00
Quote Anchor link
Ik zou zeggen, probeer dat laatste eens, en kijk of het werkt. Lijkt me niet, maar weet het niet zeker.
Gewijzigd op 01/01/1970 01:00:00 door Midas
 
Frank -

Frank -

04/04/2009 09:55:00
Quote Anchor link
1) Waarom zet je het bestand in een openbare directory? Met htaccess kun je deze directory afschermen.
2) Waarom staat het bestand niet buiten de webroot? Dan kan niemand er via de browser bij.

Raar probleem die je zelf aanmaakt maar die gelukkig op diverse manieren eenvoudig is op te lossen.
 
Jelmer rrrr

Jelmer rrrr

04/04/2009 10:37:00
Quote Anchor link
Marc Cools schreef op 04.04.2009 09:18:
Een hacker maakt op zijn computer een php bestand waarbij hij de parse_ini_file instructie gebruikt en mijn bestandsnaam er aan koppelt. Zo komt hij toch aan de inhoud. Is dat mogelijk?

Dat zal niet lukken. Zodra het bestand langs Apache komt en het de extensie .php heeft, (en apache goed ingesteld is) zal het bestand uitgevoerd worden. Zo kan je ook niet achter de php broncode van deze website komen, omdat de PHP code uitgevoerd wordt, en niet opgestuurd.
 
Marc Cools

Marc Cools

04/04/2009 13:37:00
Quote Anchor link
pgFrank schreef op 04.04.2009 09:55:
1) Waarom zet je het bestand in een openbare directory? Met htaccess kun je deze directory afschermen.
2) Waarom staat het bestand niet buiten de webroot? Dan kan niemand er via de browser bij.

Raar probleem die je zelf aanmaakt maar die gelukkig op diverse manieren eenvoudig is op te lossen.

Van htaccess weet ik ... totaal niets.
Kan iemand mij dat uitleggen of een link waar een goede uitleg staat?
 
GaMer B

GaMer B

04/04/2009 13:49:00
Quote Anchor link
Stel je hebt het zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
|>www
  |>getIni.php
  |>ini
    |>geheim.ini

Dan kun je in de map 'ini' een bestand genaamd .htaccess zetten met de inhoud:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<FilesMatch "\.(htaccess|ini)$">
order allow,deny
deny from all
</FilesMatch>


Als je naar www.jewebsite.nl/ini/geheim.ini gaat krijg je een 'Forbidden [403]' error te zien.
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
 
Marc Cools

Marc Cools

06/04/2009 23:27:00
Quote Anchor link
Als ik de volledige map en submaps wil afsluiten, is dan mijn .htaccess het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
|>www
  |>getIni.php
  |>ini
    |>geheim.ini

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
order allow,deny
deny from all

Is dat juist? Ook voor de submappen of moet ik nog per submap een .htaccess aanmaken?
Gewijzigd op 01/01/1970 01:00:00 door Marc Cools
 
Yorick17

yorick17

06/04/2009 23:37:00
Quote Anchor link
zet het gewoon buiten de webroot, en klaar!
 
Marc Cools

Marc Cools

07/04/2009 07:52:00
Quote Anchor link
GaMer13 schreef op 04.04.2009 13:49:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<FilesMatch "\.(htaccess|ini)$">
order allow,deny
deny from all
</FilesMatch>

Als ik nu alles wil verbieden behalve php en txt files, is dan het volgende correct?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
order allow,deny
deny from all
<FilesMatch "\.(php|txt)$">
order allow,deny
allow from all
</FilesMatch>

Ik weet het, ik ken er niets van. ;(

edit:

Mmmm, blijkbaar ben ik niet alleen die er niets van kent ... :D
Gewijzigd op 01/01/1970 01:00:00 door Marc Cools
 



Overzicht Reageren

Get Adobe Flash player