Bonjour,
Je suis sur le point de faire un site web. Le problème est que je ne sais pas sécuriser ma BDD ni les codes que l'on peut voir en faisant F12, pouvez-vous me donner une astuce pour que tous mes codes soient in safe ?
Tu utilises un navigateur obsolète. S'il te plait mets ton navigateur à jour ou active Google Chrome Frame pour améliorer ton expérience.
Parties en cours Pas de partie pour l'instant.
Pas encore inscrit ? Créer mon Ninja | Mon compte
Bonjour,
Je suis sur le point de faire un site web. Le problème est que je ne sais pas sécuriser ma BDD ni les codes que l'on peut voir en faisant F12, pouvez-vous me donner une astuce pour que tous mes codes soient in safe ?
Effectivement, mais s'il souhaitait avoir de vraies réponses il aurait eu plus de chance sur des forums destinés au développement WEB... D'ailleurs sa réponse a été apporté, je verrouille donc ^^
Je rappelle que l'idée même d'une section HS/Flood, c'est justement d'accueillir tous les sujets divers et variés (mais en accord avec le règlement) ne pouvant être intégrés dans les autres sections. Ce topic a donc bien sa place ici et ne pose aucun problème. :p
Merci de votre aide
On a tous débuter ^^ Si tu sais te sérvir d'un serveur Linux, ça va grandement t'aider tout de même étant donné que ce genre de système sont vraiment très "libres", c'est-à-dire que tu peux personnaliser presque tout comme bon te semble, si tu le fais bien, tu peux vraiment te démarquer des autres sites. Dans le cas contraire, tu peux vraiment perdre en rapidité, donc c'est quand-même a gérer avec précaution.
Tu verras, une fois que tu comprends le principe ça se fait très très facilement :)
Je prends note, car j'apprends encore, seulement je comprenais pas trop le fonctionnement... Je pense avoir compris.
Après, comme j'ai dit je suis débutant, je prends encore note. Je sais juste me servir de PHP My admin ^^
Mon rôle avant était de gérer un serveur Linux, maintenant c'est les transactions en php à MySQL, donc je suis vraiment... Débutant là-dedans...
Les requêtes MySQL fonctionnent encore très bien, cependant, Illoxx si tu es une personne qui veut apprendre en suivant les nouvelles méthodes, je te conseille encore une fois de te tourner vers PDO ou encore MySQLi (MySQLi sera plus simple pour débuter étant donné qu'il se base sur MySQL et donc tu n'auras pas beaucoup de recherches à faire avant de trouver l'attribut équivalent a MySQL). Bon, après rien ne t'empêches d'utiliser MySQL, mais d'après la documentation officielle, il est tout de même plus avantageux d'utiliser une méthode nouvelle pour les sites nouveaux:
L'extension mysqli, ou, comme elle est parfois appelée, l'extension MySQL améliorée (i pour improved en anglais), a été développée pour tirer parti des nouvelles fonctionnalités des systèmes MySQL version 4.1.3 et plus récent. L'extension mysqli est inclue dans PHP depuis les versions 5.
L'extension mysqli a un grand nombre d'avantages et d'améliorations par rapport à l'extension mysql
Source de http://php.net//manual/fr/mysqli.overview.php
Par la suite, tu peux regarder sur ce lien également : http://code.tutsplus.com/tutorials/pdo-vs-mysqli-which-should-you-use--net-24059 qui démontre clairement qu'entre MySQLi et PDO il y a une marge énorme de capacités.
Shagril, j'aimerais seulement te parler de quelques petites choses, n'hésite pas à me reprendre si j'ai tort, c'est pour mon propre apprentissage de développeur débutant, je me base sur des sites de développeurs ou les réponses étaient déjà apportées, mais j'aimerais avoir tes avis. Tout d'abord, le SHA1 est-il totalement indéhachable ? Personnellement, j'en doute vu le nombre de site de déhachage du SHA1; cependant j'ai appris qu'il y avait une méthode qui le rendait totalement indéhachable: utiliser un $salt (sauf si la personne connait le $salt). Dans mon site, j'hache les mot de passe de mes utilisateurs en SHA1 mais je multiplie le mot de passe par mon $salt avant. Par exemple comme ceci :
Mais toi, qu'en penses-tu ? Un $salt est-il nécessaire ? Encore une fois, moi je ne peux m'en séparer pour la fiabilité de mes utilisateurs.
Autre chose, j'ai vu que tu utilisais des requêtes avec des * pour sélectionné la totalité de la table. Niveau optimisation, j'ai appris que ça ralentissait les requêtes et donc moi je développe cette étoile par les informations dont j'ai besoin. Si j'ai besoin du pseudo et du mot de passe, je sélectionne user_pseudo, user_password et non pas toute la table, par exemple. Qu'en penses-tu, n'est-ce pas effectivement plus rapide niveau navigation ?
L'étoile est une chose bien minime mais à force peut augmenter la vitesse d'un gros script, après il y a des centaines d'astuces d'optimisation comme utiliser des ' à la place des " dans les echo ou autre, par exemple, pour la concaténation enlever les points et les remplacer par des virgules. Niveau navigation total on pourrait aussi installer un système de cache via un .htaccess qui rendrait l'affichage au second rechargement beaucoup plus rapide, un système d'archivage du type gzip des pages, modifier correctement les paramètres du php.ini, etc... Les machines Debian sont vraiment excellentes pour apprendre tout ça, on a vraiment beaucoup de liberté sur ce genre de marchine dédiées.
Bye bye, j'attends avec impatience tes réponses sur ce que j'ai dis :)
Effectivement, ce n'est pas le bon endroit mais je répondrais tout de même à ta requête.
Une base de donnée est normalement de base sécurisée si tu utilise mySQL (dans phpMyAdmin). pour plus de sécurité garde toujours ta version à jour, utilise des mots de passes long est difficile a trouver.
Niveau code web lors de chaque tes transfert de mdp pour les comptes utilisateur, utilise un cryptage sha1 il est difficilement (voir impossible) à décrypté.
exemple avec un système d'authentification :
J'explique :
j'intègre le script de connection à la base de donnée qui est sur un autre fichier php, c'est tout simple:
Je l'ajoute dans ma page auth.php avec le include() et je crypte le mot de passe avec le SHA1() (j'utilise le htmlentities() pour éviter le vole du mots de passe pendant le transfert entre plusieurs page, mais c'est surtout utilise pour éviter toute modification de la valeur par l'utilisateur) :
je me connecte à la base de donnée avec le $db_connect (le logs() est une fonction que j'ai créée pour écrire dans un fichier texte toute action sur le serveur, le or qui est devant permet de l'executer seulement si une erreur SQL apparait)
je sélectionne la base de donnée avec le $db_select
et je récupère le nom d'utilisateur, où le pseudo et le mdp crypté, sont égal ç ceux de la base de donnée :
je ferme la connexion à la base de donnée :
j'espère t'avoir un peut éclairé. Bonne continuation.
Bonjour,
Effectivement, le forum où tu poses ta question n'est pas destiné au programmation mais au jeu Ninja Tooken. Si tu souhaites avoir des réponses claires et précises, tu peux demander de l'aide sur http://fr.openclassrooms.com anciennement le site du zéro ou encore http://www.developpez.com. Ninja Tooken possède effectivement une base de données, mais c'est pas un bon argument pour poser ta question ici x)
Cependant, pour répondre à ta question, l'idée serait déjà que tu protèges tout simplement le mot de passe, ne met pas un mot de passe très simple dans le style "abc1234567" par exemple. Ensuite, le top du top serait que tes requêtes ne soient pas faites grâce à l'utilisateur "root", donc faudrait créer un utilisateur secondaire ayant des permissions réduites (réduction des dégâts) (possible si tu es chez un hébergeur de serveur dédié ou d'hébergement te laissant accès aux fichiers permettant de grosses configurations) (PS: Regarde aussi si tu as accès au php.ini, il y a certaines informations à modifier; une petite recherche sur Google et tu trouveras quoi modifier).
Par la suite, tu dois savoir qu'il existe plusieurs moyens d'envoyer des requêtes à la BDD, anciennement mysql, présentement mysqli ou encore PDO. Je te conseille fortement PDO t'évitant déjà pas mal de faille par défaut. Ensuite, tout simplement, fait un petit tour dans les documentations PHP qui sont super bien foutues pour t'apprendre à envoyer des requêtes préparées. Techniquement, avec des requêtes préparées en PDO tu ne peux pas avoir de "faille" de ce côté. Je te conseille également si tu fais récupérer des variables depuis un formulaire ($_POST) ou une information envoyée dans l'URL ($_GET) de passer ces variables par un htmlspecialchars ou un htmlentities par précaution.
Bon courage !
Je suis du même avis que bibi y a des forums appropriés pour ça non ?
Sachant que ce site comporte une BDD, je pense que c'est le bon endroit...
Je ne suis pas sûr que NT soit le bon endroit pour ce genre de question.
Ici peut êrte > http://www.commentcamarche.net/