Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/12/2010, 19h18   #1
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Par défaut Comment sécuriser ma base de donnée

Bonjour à tous,

Je vais faire un site internet qui doit être très sécurisé afin d'éviter tout hackage de ma base de donnée.

N'étant pas un confirmer en terme de sécurité, je souhaite m'adresser à vous afin d'avoir des conseils pour diminuer les disques que ma base de donnée soit "volée" eainsi que les info qui sont dedans.

Je pose la même question pour le codage PHP.

Mes premières réflexions sont.
1) Derniere vesrion de PHP
2) Ne pas utiliser de include() mais des include_once()
3) utiliser strip_tag() pour la recupération des données d'un formulaire
4) Utiliser $_POST et pas $_GET
5) Pour l'insertion des données dans ma base de donnée, utiliser la fonction mysql_real_escape_string()
6) Héberger le site en https://

Voilà, que me suggèreriez-vous encore?
Je pense aussi utiliser des sous-domaines. Es-ce aussi recommandable?

Merci à tous
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 19h45   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
1 - c'est toujours mieux même si l'exploitation de bug PHP ce n'est pas vraiment le cas courant
2 - la je ne vois pas l'avantage en securité
3 - surtout htmlspecialchars() quand tu affiches des données externes
4 - pas de reelle différence de sécurité entre les deux
5 - pour toute requête utilisant des données externes ; mieux : utiliser PDO.
6 - https vise seulement a empecher l'interception des données circulant entre le client et le serveur web.

En particulier il faut considérer toute donnée provenant de l'utilisateur (formulaire, paramètre dans l'url) comme pouvant avoir été falsifié.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 16h52   #3
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Gérant - société de développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2007
Messages : 290
Points : 360
Points : 360
Bonjour à tous,

Pour le point 2 je dirais que l'avantage est d'éviter les messages d'erreurs "Class/fonction déjà définit" par exemple si on inclue deux fois le fichier d'une class ou de fonctions.

Après tout ce qu'a dit Sabotage est bon, PDO à utiliser surtout si tu utilise autre choses que du MySQL et PgSQL et que le SGBD(R) que tu utilise n'a pas de fonction native de sécurisation dans PHP.

Pour le https:// un certificat authentifié et signé coute un certain pris entre 20 et 2800 euro /an... Et si tu ne le signe pas c'est pas bon du tout sur plusieurs point, donc un certificat signé ou pas du tout. Ensuite un certificat c'est une consommation de bande passante en plus.

Cordialement,
__________________
Si vous débutez en PHP : Tutoriel pour grands débutants

Mes tutoriels : http://alexandre-joly.developpez.com/
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 22h42   #4
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Merci pour vos réponses.

Es-ce qu'on peut privé l'acces d'un dossier pour ceux qui y accede via le browser, mais en revanche autorisé sont accès pour le code.

Par exemple, si je tape http://www.site.ch/dossier/

je dois recevoir un message d'erreur, qu'importe lequel.
(un htaccess ferais bien l'affaire)

Mais en revanche, si je tape un code du genre
Code PHP :
1
2
 
include(dossier/code.php);

ca doit marcher.

Bonne année à tous!!!
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 22h45   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
C'est deja ce qui se passe : htaccess ne concerne que les fichiers distribués par apache et non les fichiers lus directement sur le disque.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 00h09   #6
Futur Membre du Club
 
Inscription : octobre 2009
Messages : 17
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 17
Points : 15
Points : 15
Comme ça a déjà été dit précédemment, si tu n'es pas sûr de ton code en relation avec ta BDD, utilise PDO, ça comblera déjà pas mal de trous.

Tu peux utiliser https si les membres de ton site doivent communiquer des informations sensibles, comme des coordonnées bancaires. Je ne pense pas que ça vaille le coup dans le cas contraire... À confirmer.

Si tu te sers des sessions, pense à utiliser "session_regenerate_id" quand tes utilisateurs se loggent, ça peut toujours servir.
Myst. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 08h49   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
#5 - Une remarque, contrairement à une légende largement répandue, PDO seul ne suffit pas à sécuriser les échanges entres ta DB et PHP: pense à utiliser les requêtes préparées là où tu peux et les transactions là où c'est nécéssaire. Si c'est pour reproduire le même fonctionnement que les fonctions mysql classiques, il n'y a pas de grand intérêt à utiliser PDO.

#4 - ça aussi c'est une croyance populaire, absolument TOUT ce qui arrive de l'utilisateur présente un risque potentiel. Néanmoins, je te recommande l'usage systématique de $_REQUEST qui caractérise à la fois $_GET et $_POST, ça simplifie bien les choses.

#6 - Ce n'est vraiment utile que dans des cas bien particulier: informations confidentielles, paiement en ligne, messagerie privée etc. ça ne fait que crypter les échanges client/server par SSL, ça ne protège pas vraiment ton site.

Je rajouterai ça pour ma part:

#7 - Un error reporting correct, un handler d'erreur avec écriture dans un fichier de log

#8 - Une utilisation SYSTEMATIQUE de isset et empty (pas la peine de mettre les deux à chaque fois comme je le vois un peu partout: empty est une surcouche de isset)
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 11h48   #8
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Salut a tous,
Merci pour vos réponses.
Je connais pas PDO, mais je vais m'y pencher dessus.
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 15h26   #9
Membre du Club
 
Inscription : mai 2010
Messages : 97
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 97
Points : 53
Points : 53
Bha tout a été dit mais sans vouloir t'effrayer, le web est un terrain dangereux! (tjr révé de dire ca^^). serieusement si quelqu'un est assez doué en hacking et decide de hacker ta BDD (il y a assez d'outils pour des utilisateurs mal intentionnés) et bha il y arrivera, cela dit, il mettra plus ou moin de temps selon le niveau de securité. (apres un site internet quelconque (pas celui de la NASA par exemple) n'est pas constement attaqué ou harcelé par les hackeurs )
nightfall59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h51.


 
 
 
 
Partenaires

Hébergement Web