IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Comment sécuriser ma base de donnée


Sujet :

PHP & Base de données

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    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

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    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é.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre chevronné Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    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 : 417
    Par défaut
    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,

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include(dossier/code.php);

    ca doit marcher.

    Bonne année à tous!!!

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    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.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 17
    Par défaut
    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.

  7. #7
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    #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)

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    Salut a tous,
    Merci pour vos réponses.
    Je connais pas PDO, mais je vais m'y pencher dessus.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    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 )

Discussions similaires

  1. Comment sécuriser une base de données oracle
    Par lyoussra dans le forum Administration
    Réponses: 0
    Dernier message: 12/06/2008, 11h24
  2. comment sécuriser une base de données access ?
    Par ramanov dans le forum Sécurité
    Réponses: 1
    Dernier message: 14/02/2008, 21h28
  3. comment faire ma base de donnée pour un moteur de recherche
    Par HoB dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/05/2004, 15h07
  4. comment vider une base de donnée
    Par caps_corp dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 21/04/2004, 16h54
  5. Comment acceder à une base de donnée F1.db_ ?
    Par diado dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 26/12/2003, 08h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo