PDA

Bekijk Volledige Versie : [PHP] Veilig connecten met MySQL database.



BlueLagoon
13/07/03, 13:33
Stel ik heb een website, welke toegang nodig heeft tot een MySQL database.
Op dit moment maak ik een config.inc.php file aan, waar deze waardes in zijn opgeslagen (wachtwoorden). Dit bestand include ik dan vervolgens in de bestanden waar nodig.
Dan hoef ik maar 1 wijziging te maken in dit bestand, om de hele website bijvoorbeeld op een andere server te laten draaien.

Maar is dit ook veilig? Kan iemand anders mijn password file ook includen en gebruiken? En zo ja, hoe kan ik dit voorkomen?

Is er bijvoorbeeld een manier om met PHP users uit Apache of zo te gebruiken... en is dat dan veilig?

Thnx

Mike
13/07/03, 15:29
Over het algemeen is het veilig, tenzij Apache op een vreemde manier struikelt.

Een simpele alternatief is om config.inc.php buiten je webdirectory te plaatsen, en de include paden van de script bestanden daarheen te verwijzen.
/var/www/config.inc.php in plaats van /var/www/html/config.inc.php

Shr3d
13/07/03, 15:40
Ik raad je zowieso af om zo'n simpele config-file te hebben.
Het .inc is trouwens ook overbodig.

Wij zetten de configs altijd gecodeerd in de "Admin" map, die beveiligd is door een .htaccess bestand (pass, dir listing) en als ze dan nog bij de config komen kunnen ze er nogsteeds geen ene *** mee :)

BlueLagoon
13/07/03, 15:48
Jha het .inc is overbodig in de zin van "niet nodig". Het is echter wel gewoon makkelijk om te zien dat het om een include gaat... maar dat is gewoon wat je zelf het makkelijkst vind (Zolang je maar niet eindigd met .inc, want dan is het zo door iedereen te lezen :P).

Die admin map waar je het over hebt, zet je die dan dus ook buiten je www dirs? En dat coderen... is dat een eigen gefabriceerd PHP codeer functietje of zo... waarbij de boel weer wordt gedecode waar nodig?

Als je dat in PHP doet... als ze dan eenmaal in je password bestand kunnen komen, kunnen ze dan ook wel je algoritme achterhalen?

Shr3d
13/07/03, 17:59
We coderen ze dmv een eigen functie.

Het algoritme voor de passes is niet te achterhalen, md5 :)
En via een browser kan niemand een config.php uitlezen..dan krijg je een lege html page.

Admin dir is gewoon in de www

Galactus
13/07/03, 19:41
maar als iemand bij jullie config-file kan... dan kan hij wellicht ook bij jullie script... dus ook bij de functie ;)

Shr3d
13/07/03, 20:27
Origineel geplaatst door Galactus
maar als iemand bij jullie config-file kan... dan kan hij wellicht ook bij jullie script... dus ook bij de functie ;)
Klopt :)

Maar je kunt alleen bij de config-file dmv ftp access...of net wat je wilt.

Deimos
14/07/03, 17:27
Origineel geplaatst door Shr3d

Klopt :)

Maar je kunt alleen bij de config-file dmv ftp access...of net wat je wilt.
Neem aan dat je safe_mode / open_base_dir dan ook allemaal netjes hebt afgesteld Anders heb je er namelijk nog niks aan. Verder geldt bovenstaande methode niet voor config files die zijn aangemaakt door PHP (tenzij je PHP als user draait van de files).

Dus het is veilig tot op bepaalde hoogte. De oplossing die je noemt met .htaccess e.d. vind ik zelf overigens niet zo heel denderend. Handiger is een web folder onder de tree die vanaf het www is te benaderen. Op die manier sluit je eventuele toegang uit, (tenzij er malifide scripts aanwezig zijn in de klants dir).

chielsen
17/07/03, 18:12
Dan heeft dat coderen ook geen nut, agz je gecodeerd of niet, er alleen bij kan komen als je de source in handen hebt.

Een id is om zend of ioncube te gebruiken (kost wel weer geld), deze coderen het bestand een stuk beter. Ik hoor dat er ook manieren zijn om dit weer te decoderen maar als dat al zo is, is dat iig een stuk lastiger.

Frenk
18/07/03, 11:14
phtmlenc is gratis en werkt prima :) Netjes gecodeerde files en je kan ze met 1 druk op de knop weer de-coden. Je moet voor linux dan een module laden in je php.ini zodat je server de files ook kan de-coderen

Deimos
18/07/03, 12:25
Origineel geplaatst door Frenk
phtmlenc is gratis en werkt prima :) Netjes gecodeerde files en je kan ze met 1 druk op de knop weer de-coden. Je moet voor linux dan een module laden in je php.ini zodat je server de files ook kan de-coderen
En nu de vraag waarom zou iemand die de source wilt hebben ook niet even de file met die simpele handeling, van 1 druk op de knop, decoderen.

BlueLagoon
18/07/03, 12:40
Wel raar dat er zo veel mensen zijn die PHP en MySQL op Linux bak draaien... en dat er eigenlijk niet een eenduidig antwoord is voor dit probleem :D

Deimos
18/07/03, 16:46
Komt omdat veel personen huiverig zijn om PHP als suexec (CGI module) te draaien ipv als integrated module in PHP. Omdat er een aantal scripts zouden zijn die niet meer functioneren. Heb ik echter zelf nog niets van gemerkt.