Goede avond,
Op dit moment ben ik me voor mezelf aan het oriënteren op het ontwikkelen van een website waarop door verschillende gebruikers vertrouwelijke gegevens zullen worden verwerkt en opgeslagen. Het veilig opslaan en verwerken van deze gegevens is dan ook erg belangrijk.
Helaas is zo goed als geen programma helemaal veilig en zijn bovendien er ook nog andere wegen die eventueel naar de data zouden kunnen leiden. Naast het fatsoenlijk programmeren (denk aan: sql injecties en cross site scripting voorkomen) is ook een fatsoenlijke implementatie en omgeving van de code en data belangrijk. Hiervoor heb ik in de eerste instantie het volgende, schematische, opzetje bedacht. In dit opzetje ga ik uit van een combinatie van PHP en MySQL.
Uiteraard is fatsoenlijke en veilige code en een juiste encryptie van passwords erg belangrijk, maar met bovenstaande opzet heb ik het idee al een aardige basis voor een veilige omgeving gelegd te hebben. Maar is dat wel echt zo? Zie ik niet iets over het hoofd of is deze oplossing zelfs al iets te omslachtig?
De keuze voor PHP en MySQL is vooral op mijn eigen ervaring en capaciteiten gebaseerd. In het realiseren van de website zou ik zoveel mogelijk zelf willen doen; dat is (slechts) mogelijk met een combinatie van PHP en MySQL. Wat betreft veiligheid, en bij de wat grotere systemen, wil er nog eens een "mysql vs. postgresql" discussie zijn. Zijn er los van die discussie grote bezwaren tegen het gebruik van een combinatie van PHP en MySQL in een systeem waarbij vertrouwelijke data wordt opgeslagen en bewerkt?
Alvast bedankt voor reacties en suggesties!
Op dit moment ben ik me voor mezelf aan het oriënteren op het ontwikkelen van een website waarop door verschillende gebruikers vertrouwelijke gegevens zullen worden verwerkt en opgeslagen. Het veilig opslaan en verwerken van deze gegevens is dan ook erg belangrijk.
Helaas is zo goed als geen programma helemaal veilig en zijn bovendien er ook nog andere wegen die eventueel naar de data zouden kunnen leiden. Naast het fatsoenlijk programmeren (denk aan: sql injecties en cross site scripting voorkomen) is ook een fatsoenlijke implementatie en omgeving van de code en data belangrijk. Hiervoor heb ik in de eerste instantie het volgende, schematische, opzetje bedacht. In dit opzetje ga ik uit van een combinatie van PHP en MySQL.
- Om de data van de verschillende gebruikers gescheiden te houden en de toegang tot de data te beperken zal er voor iedere gebruiker een aparte database aangemaakt worden.
- In deze database staat ook het password (encrypted) van die betreffende gebruiker om in te loggen op de website
- Omdat het MySQL password ergens in een PHP bestand opgeslagen zal moeten worden had ik het idee om voor iedere gebruiker ook een eigen (virtuele) "webomgeving" aan te maken. In deze omgeving staat een "configuratie bestand" van de gebruiker opgeslagen met daarin in ieder geval het password en de gebruikersnaam voor de betreffende MySQL database.
- De rest van de (PHP) bestanden van de applicatie zullen via een symbolic link slechts virtueel in deze webomgeving aanwezig zijn.
- Verder wordt zal de verbinding in ieder geval via SSL moeten gaan.
- Voor het geval de database(s) (via een andere weg) toch op straat komt(en) te liggen zouden de gegevens in de database ook nog eens encrypted opgeslagen kunnen worden, maar dan moet er dus nog ergens een key worden bewaard om deze gegevens weer te decrypten. En verlies ik hierbij niet veel performance wanneer de data veelvuldig wordt opgevraagd?
Uiteraard is fatsoenlijke en veilige code en een juiste encryptie van passwords erg belangrijk, maar met bovenstaande opzet heb ik het idee al een aardige basis voor een veilige omgeving gelegd te hebben. Maar is dat wel echt zo? Zie ik niet iets over het hoofd of is deze oplossing zelfs al iets te omslachtig?
De keuze voor PHP en MySQL is vooral op mijn eigen ervaring en capaciteiten gebaseerd. In het realiseren van de website zou ik zoveel mogelijk zelf willen doen; dat is (slechts) mogelijk met een combinatie van PHP en MySQL. Wat betreft veiligheid, en bij de wat grotere systemen, wil er nog eens een "mysql vs. postgresql" discussie zijn. Zijn er los van die discussie grote bezwaren tegen het gebruik van een combinatie van PHP en MySQL in een systeem waarbij vertrouwelijke data wordt opgeslagen en bewerkt?
Alvast bedankt voor reacties en suggesties!