2017-07-10 1 views
0

J'essaie de me connecter à ma base de données avec le code suivant. Et cela fonctionne, mais je ne suis pas sûr de la sécurité. Dois-je avoir une fonction privée aussi? Je n'ai aucun exemple d'application d'une fonction privée sur ce code.La connexion à la base de données PDO est-elle sécurisée?

$username = 'user'; 
$dsn = 'mysql:host=localhost; dbname=register'; 
$password = 'somepassword'; 

try{ 
    $db = new PDO($dsn, $username, $password); 

    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 


}catch (PDOException $ex){ 
    echo "Connection failed ".$ex->getMessage(); 
} 
+0

Oui, c'est sécurisé. La façon dont vous interrogez peut être entièrement différente. –

+1

Les modificateurs de visibilité (http://php.net/manual/en/language.oop5.visibility.php) ne concernent pas la sécurité. (Historiquement, ils ne concernent pas non plus la visibilité, ..) – mario

Répondre

0

Mieux utiliser php composer où vous pouvez mettre ces détails dans un fichier d'environnement .env. Il sera sécurisé car .env est caché et est placé sur le serveur.

+0

Ceci est un commentaire, pas une réponse. [Il n'est pas difficile de gagner assez de rep pour faire des commentaires.] (Http://meta.stackexchange.com/questions/214173/why-do--need-50-reputation-to-comment-what-can-i- faire-à la place) –

0
  • Mettez les paramètres de connexion dans un endroit sûr (non accessible par les requêtes HTTP, quelque chose comme la première réponse sera agréable), ne les laissez pas dans le script PHP ou un fichier dans le même contexte .. Ne mettez jamais d'exception dans la sortie du script, mettez toujours dans un fichier journal, traduisez en erreur cachée, etc). Le script ne devrait jamais jeter des exceptions à l'utilisateur, il doit être manipulé ... l'utilisateur ne doit voir que des messages sympathiques du script, même un "Ops, quelque chose de mal arriver ici ..." vaut mieux qu'un "ERROR: SQLSTATE [ 42000] [1049] Base de données inconnue 'users' "(qui montre à l'utilisateur une partie de la structure de la base de données, problème de sécurité)