[MySQL + PHP] Beveiliging vragen.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • The_DoubleU
  • Registratie: Augustus 2002
  • Laatst online: 10-06 22:40

The_DoubleU

Tweaker in München

Topicstarter
Ik ben (weer eens) begonnen met Mysql en php.
En alles loopt prima. Maar terwijl ik bezig was met wat coding bedacht ik me opeens dat het password voor je sql server in plain text in je php code staat. Is dit wel veilig, bestaat de kans niet dat iemand de php file kan lezen en zo je sql password weet?
Zijn er mogelijkheden om je password ergens anders in op te slaan, het liefst met een soort encryptie.
Maken jullie trouwens een nieuwe SQL user aan voor elke website, of gebruik je gewoon root in je scripts?

Ik heb een beetje gezocht op GoT maar kwam eigenlijk alleen maar posts tegen over problemen met connecten. Ik heb geen problemen ik will alleen tips over hoe je het veiligst een verbinding kan opbouwen. Als je nog leesvoer weet over dit topic ben ik uiteraard ook zeer geintereseerd.

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
The_DoubleU schreef op maandag 23 januari 2006 @ 11:01:
Maar terwijl ik bezig was met wat coding bedacht ik me opeens dat het password voor je sql server in plain text in je php code staat. Is dit wel veilig, bestaat de kans niet dat iemand de php file kan lezen en zo je sql password weet?
Ja, die kans bestaat als je je webserver verneukt waardoor php-files niet meer door php geparsed worden, maar ter download aangeboden worden. Da's dus zwaar bad en zou in principe nooit voor moeten komen, maar de kans is inderdaad aanwezig als je een prutser bent :)
Maar verder zie ik zo snel geen scenario waardoor mensen je PHP-files kunnen lezen als je je server goed in orde hebt qua rechten.

[ Voor 11% gewijzigd door Osiris op 23-01-2006 11:05 ]


Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Je kan in SQL gewoon instellen dat een bepaalde user alleen maar vanaf localhost mag connecten. Dus zodra iemand je bestanden kan bekijken en wijzigen heb je inderdaad een security-risk, maar dat heb je dus ook als je het wachtwoord encrypt.

Met de volgende query beperk je volgens mij de connecties tot localhost:
code:
1
GRANT ALL priviliges ON projectx TO projectx@localhost IDENTIFIED BY 'secret'

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 11-06 19:21

Tux

Zolang je er maar voor zorgt dat PHP actief is op de webserver zal de webserver nooit de php source naar iemand sturen. Verder staat het account voor een site meestal zo ingesteld dat het alleen mogelijk is om vanaf localhost in te loggen op de database.
Om het nog ietsje veiliger te maken is het misschien mogelijk om de database instellingen in een configuratiebestand te zetten, en dit bestand buiten de mappen te zetten die bereikbaar zijn vanaf internet (niet altijd mogelijk).

Als ik ontwikkel gebruik ik in mijn applicaties op mijn testserver altijd wel root. Op een productieserver heeft elke site wel een eigen account.

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Alleen op een slecht beveiligde server zijn files van een andere user te lezen.
Encryptie kan wel, ik heb dat wel eens gezien, echter jouw code dient ook de code te bevatten om het te kunnen decrypten anders heb je er immers niks aan. Het enige voordeel aan dergelijke encryptie is dat het wachtwoord niet direct gelezen kan worden tbv meelezen :)

o, en uiteraard zorgen dat je config file buiten je webroot staat.

[ Voor 10% gewijzigd door Erkens op 23-01-2006 11:07 ]


Acties:
  • 0 Henk 'm!

  • sariel
  • Registratie: Mei 2004
  • Laatst online: 22-05-2024
Zorg er voor dat het configuratie script (config.inc.php of zo) niet publiek leesbaar is, of anders netjes geparst wordt door IIS/Apache/PHP, en geen output geeft.

Copy.com


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-06 16:30

Bosmonster

*zucht*

Het is dan ook geen slecht idee om dit soort informatie _onder_ de webroot op te slaan, zodat ze nooit (zelfs niet als de webserver vreemd doet) opgeroepen kunnen worden.

Acties:
  • 0 Henk 'm!

  • lammert
  • Registratie: Maart 2004
  • Laatst online: 01-06 23:14
ik zet de DB toegangsgegevens altijd in een los bestandje in een aparte folder waarop je alleen leesrechten hebt vanaf de localhost. Dit bestandje include ik dan in mn php. IMO simpel en veilig.

Acties:
  • 0 Henk 'm!

  • The_DoubleU
  • Registratie: Augustus 2002
  • Laatst online: 10-06 22:40

The_DoubleU

Tweaker in München

Topicstarter
zo dat zijn veel reakties in een korte tijd. Bedankt!
Het volgende lijstje aanraders heb ik nu.

Apart MySQL account maken (geen root).
MySQL account mag alleen via local host connecten.
Apart configbestand in aparte folder. Alleen toegang via local host.

Dit lijkt me al een stuk beter dan het allemaal direct in mysql_connect te zetten. :)

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Gewoon je bestand met connectie info buiten de webroot zetten. Klaar.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • pelleke
  • Registratie: Maart 2003
  • Laatst online: 08-11-2024

pelleke

Aut viam inveniam aut faciam

Ik verwacht eigenlijk sowieso niet dat Apache de boosdoener zou worden bij het "hacken" van PHP-files; een goed geconfde apache zou nooit die fout maken.

FTP is als je het mij vraagt een groter gevaar: iedereen die je FTP-accountgegevens heeft krijgt volledige toegang op je scripts. Nou is een FTP-login altijd onbeveiligd; geen encryptie! Iedereen met low-level acces op die server (of bij jouw ISP) kan dus gewoon alles aanpassen.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

pelleke schreef op maandag 23 januari 2006 @ 17:00:
FTP is als je het mij vraagt een groter gevaar: iedereen die je FTP-accountgegevens heeft krijgt volledige toegang op je scripts.
iedereen die je dergelijke gegevens geeft vertrouw je ;)
maar dan nog, waarom zou je wel je FTP gegevens laten rondslingeren maar niet je database passwords. De mens is altijd de zwakste schakel.
Nou is een FTP-login altijd onbeveiligd; geen encryptie! Iedereen met low-level acces op die server (of bij jouw ISP) kan dus gewoon alles aanpassen.
de kans dat dat gebeurd is nog kleiner dan dat er een foutje in de apache/php config zit waardoor het beter is om die file buiten je webroot te zetten dan dat je je daarover zorgen moet maken.
daarnaast kan iemand die root access heeft op de server _altijd_ bij al je files, kan je niks aan doen.
Pagina: 1