Sécurité des bases de données
Sommaire
De nos jours, les bases de données sont des composants incontournables
des serveurs web et des applications en ligne, qui fournissent du contenu
dynamique. Des données secrètes ou critiques peuvent être stockées dans les
bases de données : il est donc important de les protéger efficacement.
Pour lire ou stocker des informations, vous devez vous connecter au serveur
de bases de données, envoyer une requête valide, lire le résultat et
refermer la connexion. De nos jours, le langage le plus courant pour ce
type de communication est le langage SQL
(Structured Query Language
). Voyez
comment un pirate peut
s'introduire dans une
requête SQL.
Comme vous pouvez le réaliser, PHP ne peut pas protéger
vos bases de données pour vous. La section suivante vous introduira aux
notions de base pour protéger vos bases de données, lors de la programmation
de vos scripts PHP.
Gardez bien cette règle simple en tête : la défense se fait par couches.
Plus vous ajouterez de tests pour protéger votre base, plus faible sera la
probabilité de réussite d'un pirate. Ajoutez à cela un bon schéma de base
de données, et vous aurez une application réussie.
gabe dot aust at gmail dot com ¶5 days ago
The most significant way to protect databases is to simply use authentication! There are production systems online with null and default administrator credentials. See the recent "The Real World" hack...
Rule 1: Simply use authentication instead of not using it... Obviously do not save the credentials in a public-readable file.
Rule 2: Create a subsidiary account with access only to the live schema being used by your PHP app, i.e. never use the global DBMS admin account as a service login.
Rule 3: Block access at the DBMS end to only allow the web server to access the API. Most access is network based so that will involve filtering by IP.
Rule 4: You can obfuscate a bit more by setting a non-standard port but this may require code changes in the API calls you coded.
The above are some simple steps anyone can perform. More serious securing would likely involve setting up SSL connectivity.