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 :

PHP et requêtes mysqli


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2013
    Messages : 48
    Par défaut PHP et requêtes mysqli
    Bonjour !

    J'ai de nombreux scripts comportant actuellement des requêtes écrites "mysql_query".
    Chaque fois que j'ouvre une discussion sur d'autres forums, les répondants me traitent littéralement comme un délinquant, m'écrivant que je ne dois plus les utiliser mais, à la place, utiliser la "merveilleuse" requête "mysqli_query".

    Bon, d'accord, moi, je veux bien.
    Mais lorsque je pose la question : « Comment dois-je modifier mes scripts pour les mettre au goût du jour et les rendre ainsi plus sécuritaires ? », il n'y a soudain plus personne pour me répondre !

    Récemment inscrit sur ce site, j'espère qu'il se trouvera ici des geeks en mesure de conseiller le pépé amateur que je suis pour effectuer cette transition...

    D'avance, je les en remercie !

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Billets dans le blog
    1
    Par défaut
    Ce document (en anglais) est une bonne base de travail déjà : https://wikis.oracle.com/display/mys...ting+to+MySQLi
    Mais attention, il ne suffit pas juste de rajouter un "i" pour que tout change ! Il va falloir que tu regardes aussi du côté des requêtes préparées par exemple pour améliorer la sécurité de ton code, et sûrement pas mal de TNR et débugage pour les changements de comportements entre les deux pilotes.


    Tu as aussi ici une petite page sympa qui reprend pas mal de notions importantes : http://www.php.net/manual/fr/mysqli.overview.php
    Et, enfin, un résumé de toutes les fonctions mysqli et leur utilité : http://www.php.net/manual/fr/mysqli.summary.php

    Bon courage !
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  3. #3
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2013
    Messages : 48
    Par défaut
    Merci beaucoup pour ta réponse !

    Des nuits blanches en perspective, donc.

    Dans un premier temps, je voudrais simplement savoir si, en remplaçant uniquement mysql par mysqli ça fonctionnera quand même.

    Après, je m'attellerai à assimiler les requêtes préparées.
    Je pense qu'ayant une dizaine de scripts d'environ 5000 lignes de code au total cela ne devrait pas me prendre des semaines de travail.
    Ou alors, ignorant que je suis, je sous-estime la « perversité » informatique et dois me préparer au pire !

    Qu'en penses-tu ?

  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    attention, c'est pas les requêtes préparées qui font la sécurité du tout, c'est le fait de correctement récupérer les valeur que tu as dans $_POST ou $_GET dés que tu récupère un nombre il faut utiliser un intval() ou floatval() ou doubleval() pour s'en assurer

    toujours tester le contenu d'une chaine de caractères avec une regexp quand c'est possible...

    php est faiblement typé et une variable peut changer de type contrairement au sgbd qui sont fortement typé dont les colonnes des tables ne permettent pas n'importe quel type de cast ou de remplissage une fois leur type fixé...

    ce qui donne l'illusion de la sécurité c'est si tu utilises les bind de valeur pour les requêtes préparées du coup ça teste si tu utilises le bon type vu que tu le décris explicitement lors du passage de valeur...

    je te l'ai déjà dit l'idéal en terme de sécurité c'est les procédures stockées avec un utilisateur avec seulement le droit "grant execute"...

    ensuite faut pas oublier d'empêcher des attaques via ftp... ne jamais croire ce qui vient du navigateur... utiliser gd par exemple pour tester si tu as bien à faire à une image... etc... d'ordre général ne pas permettre l'exécution de fichiers uploadés par ftp ou formulaire s'ils ne viennent pas de toi...

    toujours empêcher le listing des fichiers et répertoires et idéalement utiliser des techniques masquant l'arborescence des ressources (url rewriting, passer par un script php qui récupère la ressources, etc...)

  5. #5
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2013
    Messages : 48
    Par défaut
    Merci d'intervenir dans la discussion, Eric.

    Dans l'ensemble, j'ai bien compris...
    Sauf "gd pour tester"... gd ?

    En ce qui concerne l'accès aux répertoires, c'est une des toutes premières mesures que j'ai prises.

    Sur un autre sujet, j'aurais besoin d'aide pour des regexp.
    Je vais ouvrir une autre discussion pour cela.

    Merci encore !

  6. #6
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    gd, c'est une des 2 bibliothèques de manipulation d'images dans php...

    je rajouterais aussi l'utilisation de jeton aléatoire entre php coté et javascript coté client pour empêcher le vol de session par les 2 principales techniques d'attaques liées à ça...

Discussions similaires

  1. [MySQL] Impossibilité d'utiliser une requête MySQLi dans une fonction PHP
    Par Sestifer dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 10/01/2012, 14h40
  2. [SQL] Problème PHP et requête SQL
    Par Pepito dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/05/2006, 02h41
  3. [MySQL] Comment appeler du code PHP par requête
    Par mickdu90 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 19/04/2006, 10h55
  4. [Lotus Notes 6 - PHP] Problème requête
    Par Ben42 dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 28/02/2006, 15h02
  5. [php-mysql] requête qui ne marche pas....
    Par sanosuke85 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/01/2006, 17h18

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