Même login et mot de passe pour tous avec MySQL?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Même login et mot de passe pour tous avec MySQL?

par newbie » 13 nov. 2006, 19:00

Mais par contre si on a le mot de passe administrateur de base de données et l'identifiant root, qu'est ce qui est dangereux? On peut donc attaquer la base par des requetes sql?

par graphistnet » 19 oct. 2006, 03:31

Le but étant, car il y en a un, qu'on ne peut pas savoir qui se connecte à la base MySQL sinon en leur collant des SESSIONs.

Bon, moi je jette l'éponge ](*,) et je me couche :sleeping:

par zeuf » 19 oct. 2006, 02:48

Oui, bien-sûr, j'imagine.

Merci en tout cas.

A +

Zeuf

par Ajoloca » 19 oct. 2006, 02:43

Re,

Le lien c'était juste pour l'exemple, des aspirateurs il doit-y-en avoir des milliers, bien sur certains + puissants que d'autres. Mais il existe aussi des parades, comme toujours, plus ou mois efficaces.

par zeuf » 19 oct. 2006, 02:36

J'ai bien compris Graphistnet que ce n'est pas l'utilisateur qui se connecte. Mais tu n'as pas compris ce que je voulais dire.

Aj : Quant aux aspirateurs de sites, je les comprends bien aussi. HTTRACK a des limites tandis que DOWNTHEMALL! n'en a presque pas et est bien plus puissant. http://www.downthemall.net/.

Le problème n'est pas de savoir où je mets le script PHP qui contient L'UN des identifiants et L'UN des mots de passe (et des identifiants qui permettent les moins de choses possibles) : ça je sais. EN DEHORS DU ROOT !!

C'est juste que je trouvais cela étrange que des centaines d'internautes se connectent VIA le script PHP (Ca c'est pour Graphistnet ! :D ) avec les mêmes identifiants. Que les identifiants se trouvent sous le WWW ou ailleurs, là n'était pas le propos.

Le but étant, car il y en a un, qu'on ne peut pas savoir qui se connecte à la base MySQL sinon en leur collant des SESSIONs.

A +

Zeuf

par Ajoloca » 19 oct. 2006, 01:50

Re,

Les aspirateurs de sites sont des outils capables de "recopier" un site entier (pages (x)html, scripts JS, PHP, liens, etc) sur ta machine. Donc si ton code contient le mot de passe en dur, il suffit de lire ce source pour le récupérer.

Pour une meilleure explication, rien ne vaut un exemple http://www.httrack.com/page/1/fr/index.html

par zeuf » 19 oct. 2006, 01:39

Et bien à vrai dire, si je suis banquier et que des clients viennent me voir et qu'ils ont tous le même nom, oui !

Mais bon, c'est une logique qu'il faut que j'accepte car c'est comme ça.

Je te remercie en tout cas. Je continue mon développement.

A +

Zeuf

par graphistnet » 19 oct. 2006, 01:38

En fait ce qui ne me semblait pas logique du tout c'est que plusieurs internaute se connecte à la base MySQL avec le même identifiant et le même mot de passe, tu comprends ?

Je crains de me répêter mais (pour la dernière fois) ce n'est pas l'utilisateur qui se connecte à la base mais le script, l'utilisateur n'est que le déclencheur mais il ne se connecte JAMAIS à la base de données.


Ajoloca (je me répête encore) pourrais tu détailler ton argument sur les aspirateurs de sites?

par Ajoloca » 19 oct. 2006, 01:19

Comme je te l'ai dis dans l'exemple du banquier.
Ça te semble bizare que le même banquier s'occupe de plusieurs clients ?

par zeuf » 19 oct. 2006, 01:16

Ah ok, j'avais pas vu qu'on était 3 sur le thread.

Ok donc je résume pour que ce soit clair (pour moi) :

- je crée un utilisateur MySQL (que j'appelle X par exemple) avec des droits super limité (enfin les droits que je suppose qu'il doit avoir).

- quand X (qui peut être n'importe quel internaute et donc une multitude d'internaute en même temps) se connecte à la table de la BD, le script PHP va récupérer les logins d'accès à la table dans un fichier qui se trouve en dehors du ROOT WEB (ce qui me semble logique).

En fait ce qui ne me semblait pas logique du tout c'est que plusieurs internaute se connecte à la base MySQL avec le même identifiant et le même mot de passe, tu comprends ?

par Ajoloca » 19 oct. 2006, 01:07

Re,

Je ne vois pas où est cité le fait que ce sont les utilisateurs (internautes) qui ont le mot de passe de la connexion à la base.

Mais les scripts qui se connectent, ne doivent pas le faire avec le même compte MySQL que l'administrateur.

En cas de "vol" du mot de passe du "compte utilisateur" on limite les dégats dans la base (le compte utilisateur ne pouras jamais supprimer un ligne dans la base commandes par exemple, ne poura pas ajouter une référence de produit, modifier son prix, etc...)

C'est dans ce sens que je l'entends, pas dans le sens d'un compte SQL par utilisateur comme tu le sous entends
Zeuf, ce message ne s'adressait pas directement à toi mais à graphistnet.

par Ajoloca » 19 oct. 2006, 01:04

Re,
Non c'est pas exactement ça.

C'est comme si tu vas à la banque, le même guichettier va servir plusieurs clients, mais il ne melengera pas les comptes.

Les utilisateurs (internautes) sont les clients de la banque et le guchettier c'est le compte MySQL, le seul qui manipule les données (les comptes bancaires)

par Ajoloca » 19 oct. 2006, 00:59

Re,
@ zeuf
Le nom et mot de pase se trouvent dans un fichier qui apparient à Apache et que même ceux du groupe auquel appartien apache ne peuvent lire. Comme apache n'as pas de shell de connexion, seul root (du système) peut le modifier et pour acceder on doit passer par le web (pour être apache).

Donc ton script de connexion (qui bien sur est hors web) est en PHP, PHP est considéré par le système comme étant apache, mais il accéde aux fichiers par le système de fichiers, il peut donc accéder hors web.

Il va donc lire ce fichier prendre le nom/mot de passe (dans des variables - il n'est pas en dur dans le code), il se connecte à base, obtient la resource et libère les variables juste après.

C'est ma façon de voir, il en existe surement des meilleurs, mais je pense que c'est assez efficace.

par zeuf » 19 oct. 2006, 00:57

Non, je suis d'accord, bien-sûr qu'ils n'ont pas les logins ROOT ou même avec des GRANTs sur MYSQL ou USER.

Ils ont un logins (identifiant + mot de passe) propre à leur condition d'utilisateur mais c'est le même pour tout le monde.

Donc s'il y a 300 internautes qui se connectent en même temps, ils auront tous les 300 le même identifiant et le même mot de passe (même si ce logins ne permet que de consulter une seule table qui ne contient rien d'important).

C'est ce que je trouve bizarre... Mais bon finalement c'est comme si on habitait à 10 dans un appartement et que chacun ait sa clé : c'est la même clé pour tous (Ensuite qu'à l'intérieur de l'appart il y ait d'autres pièces auxquelles tout le monde n'a pas accès, c'est autre chose).

A +

Zeuf

par Ajoloca » 19 oct. 2006, 00:47

Re,

Je ne vois pas où est cité le fait que ce sont les utilisateurs (internautes) qui ont le mot de passe de la connexion à la base.

Mais les scripts qui se connectent, ne doivent pas le faire avec le même compte MySQL que l'administrateur.

En cas de "vol" du mot de passe du "compte utilisateur" on limite les dégats dans la base (le compte utilisateur ne pouras jamais supprimer un ligne dans la base commandes par exemple, ne poura pas ajouter une référence de produit, modifier son prix, etc...)

C'est dans ce sens que je l'entends, pas dans le sens d'un compte SQL par utilisateur comme tu le sous entends