Question fiabilité et sécurité Mysql Free

Eléphanteau du PHP | 17 Messages

01 sept. 2019, 16:05

Bonjour à tous,

J'ai développé une application Android qui utilise une base de données via mon fournisseur internet Free, j'ai pour info rédigé mes PHP en PDO, l'ensemble fonctionne parfaitement, je peux sans problème importer ou exporter mes données via mon application, ma question est de savoir si l'ensemble reste plus ou moins sécurisé ou bien faut-il apporter d'autres actions ?

Merci à vous.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8306 Messages

01 sept. 2019, 16:14

Sans savoir ce que tu as mis en place comme sécurité ni voir ton code, c'est impossible de te dire ce qu'il en est. :-D

Le principe de base est que tu ne dois JAMAIS faire confiance à ce que tu reçois d'un utilisateur (même via ton appli), du coup il est fortement recommandé de filtrer toutes les variables reçues via $_GET, $_POST, $_COOKIE avec des fonctions comme filter_var()
https://www.php.net/filter_var

A utiliser avec les filtres par défaut de PHP qui permettent de gérer les cas les plus classiques :
https://www.php.net/manual/fr/filter.fi ... nitize.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8306 Messages

01 sept. 2019, 16:17

Un lien intéressant qui recense les bonnes pratiques pour développer en PHP :
https://eilgin.github.io/php-the-right-way/
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 17 Messages

01 sept. 2019, 19:18

Voici un exemple de script que j'utilise pour l'envoi et la réception, le principe dans mon appli est de remplir un formualire, de stocké ensuite mes données dans la BDD et de les récupérer et les afficher dans mon formulaire quand j'en ais besoin ou qu'un de mes collègues les charges depuis sont appli.

Mon script pour envoyer et enregistrer mes donnéés:

Code : Tout sélectionner

<?php $serveur = 'sql.free.fr'; $login = 'monLogin'; $pass = 'monPass'; $nom_cl = $_POST['nom_cl']; $prenom_cl = $_POST['prenom_cl']; $naissance = $_POST['naissance']; $lieu = $_POST['lieu']; $adresse = $_POST['adresse']; $cp = $_POST['cp']; $ville = $_POST['ville']; $tel_fixe = $_POST['tel_fixe']; $tel_por = $_POST['tel_por']; try { $connexion = new PDO('mysql:host=$serveur;dbname=maTable;charset=UTF8', $login, $pass); $connexion -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo 'connexion=1'; $requete = $connexion->prepare('INSERT INTO maTable (nom_cl,prenom_cl,naissance,lieu,adresse,cp,ville,tel_fixe,tel_por) VALUES (:nom_cl,:prenom_cl,:naissance,:lieu,:adresse,:cp,:ville,:tel_fixe,:tel_por)'); $requete->bindParam(':nom_cl' , $nom_cl); $requete->bindParam(':prenom_cl' , $prenom_cl); $requete->bindParam(':naissance', $naissance); $requete->bindParam(':lieu', $lieu); $requete->bindParam(':adresse', $adresse); $requete->bindParam(':cp', $cp); $requete->bindParam(':ville', $ville); $requete->bindParam(':tel_fixe', $tel_fixe); $requete->bindParam(':tel_por', $tel_por); $requete->execute(); } catch(PDOException $e) { echo 'Echec de la connexion : ' .$e->getMessage(); } ?>

Mon script pour les récupérer:

Code : Tout sélectionner

<?php $serveur = 'sql.free.fr'; $login = 'monLogin'; $pass = 'monPass'; $nom_cl = $_POST['nom_cl']; $prenom_cl = $_POST['prenom_cl']; try { $connexion = new PDO('mysql:host=$serveur;dbname=maTable;charset=utf8', $login, $pass); $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $requete = $connexion->prepare('SELECT nom_cl,prenom_cl,naissance,lieu,adresse,cp,ville,tel_fixe,tel_por FROM maTable WHERE nom_cl = :nom_cl AND prenom_cl = :prenom_cl'); $requete->bindParam(':nom_cl', $nom_cl); $requete->bindParam(':prenom_cl', $prenom_cl); $requete->execute(); $resultat = $requete->fetch(); if( $resultat != 0 ) { $connexion=1; // Récupéré dans mon appli pour confirmer le résultat } else { $connexion=2; // Récupéré dans mon appli pour confirmer le non résultat } echo '{ "connexion":'.$connexion.', "nom_cl":"'.$resultat['nom_cl'].'", "prenom_cl":"'.$resultat['prenom_cl'].'", "naissance":"'.$resultat['naissance'].'", "lieu":"'.$resultat['lieu'].'", "adresse":"'.$resultat['adresse'].'", "cp":"'.$resultat['cp'].'", "ville":"'.$resultat['ville'].'", "tel_fixe":"'.$resultat['tel_fixe'].'", "tel_por":"'.$resultat['tel_por'].'" }'; } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?>