Beveiliging van het db_login.php bestand (door Yossi Beck)
Er is natuurlijk geen grens aan de extra beveiligingen die men in programmas op het internet kan toevoegen.Huub heeft veel tijd en moeite besteed aan de beveiliging van HuMo-gen.
Ik wil ik hier een vrij belangrijke "do-it-yourself" extra beveiliging voorstellen, die niet in HuMo-gen kan worden ingebouwd omdat dan de installatie voor minder ingeweiden te lastig zou worden, maar die wel door veel security sites en webhosts wordt aangeraden.
Het kan vrij eenvoudig zelf worden gedaan.
Het gaat om het SQL login bestand login_db.php in de include map, dat door iedereen die HuMo-gen installeert moet worden ingevuld met de SQL database naam, de SQL database gebruikersnaam en het SQL database paswoord.
De bovenstaande drie gegevens zijn erg gevoelig, aangezien wie er over beschikt de database binnen kan. Hackers die kans zien die gegevens te krijgen, kunnen niet alleen de database wissen, maar er ook vervaarlijke scripts plaatsen waar allerlei narigheid mee kan worden uitgevoerd op het internet.
Het probleem is dat het bestand db_login.php samen met alle andere HuMo-gen bestanden op het internet staat, met die drie gegevens erin, niet encrypted. Gewone onschuldige gebruikers kunnen weliswaar niet zomaar zo'n bestand lezen, maar voor een beginnende hacker is dat al geen probleem meer.
De oplossing is niet zo moeilijk. Iedereen met een domain bij een webhost kan zijn bestanden bekijken met een door de webhost bijgeleverd verkenner programma, zoals bijv. Cpanel, of met een FTP programma als FileZilla.
Een van de hoofdmappen in de "root" map heet doorgaans iets als "public", "public-html", "www" of iets dergelijks. Alle mappen en bestanden die daarin worden gezet (zoals bijv. de HuMo-gen map) zijn in principe op het internet zichtbaar, zei het opzettelijk zoals natuurlijk de bedoeling is met programmas als HuMo-gen, of met een beetje hacken.
Om de beveiliging van het db_login.php bestand met zijn gevoelige gegevens aanzienlijk te versterken, moet dit bestand verplaatst worden van zijn plaats in de HuMo-gen map, die natuurlijk in het "zichtbare" gedeelte staat, naar het voor het internet "onzichtbare" gedeelte op de server van de webhost.
Maar we kunnen het niet zomaar verplaatsen, want HuMo-gen zoekt het bestand in zijn eigen map tijdens het opstarten.
De vrij eenvoudige oplossing is als volgt:
1. Ga naar de include map en zoek het bestand db_login.php
2. Verander de naam in db_login.inc.php
3. Verplaats dit bestand naar een plaats op de server buiten de public html map, bijv. in de root ("/")
4. Ga terug naar de include map en maak een nieuw leeg bestand aan met de naam db_login.php
5. In dit bestand schrijf de volgende korte code:
<?php
require_once("/home/domainname/db_login.inc.php");
?>
Klaar is Kees.
Na dit te hebben gedaan zijn de gevoelige gegevens niet meer toegankelijk vanaf het internet en kunnen alleen op de server zelf worden aangevraagd door Humo-gen.
Bij installeren van een nieuwe versie van HuMo-gen wordt er sowieso door Huub aanbevolen het /include/db_login.php bestand niet te vervangen, en dan hoeft er verder aan het bovenstaande niets veranderd te worden.
Als er in de toekomst in een nieuwe versie ook veranderingen zouden komen in de code van het db_login.php bestand, zal gewoon de bovenstaande procedure nog eens gedaan moeten worden, wat een maar een paar minuten werk is.
Succes - en veel plezier met HuMo-gen.
Yossi Beck
HuMo-gen genealogische software (sinds 1999)