8768 sujets

Développement web côté serveur, CMS

Bonjour,

Sur un site que j'ai réalisé sous Drupal 7, je ne sais pas pourquoi il y a des comptes utilisateurs qui apparaissent. Ils sont tous bloqué automatiquement mais je ne trouve pas ça normal. J'ai un captcha, honeypot pour protéger les connexions. Vous en pensez quoi ? Où est-ce que je n'ai pas bien fait ?
Modérateur
Bonjour blond1n,

Mes hypothèses :

- S'il y a un formulaire de création de compte utilisateur accessible par les visiteurs du site Web, un robot passe par là et perce le captcha/honeypot, ou un humain le fait manuellement.

- Si tu as différentes requêtes SQL avec des paramètres dynamiques qui sont passées par l'URL ou par des champs de formulaire, il est possible que ces requêtes ne soient pas correctement protégées contre les injections SQL. Connais-tu bien les méthodes pour te protéger des injections SQL?

- Le mot de passe d'un administrateur est compromis et quelqu'un s'y connecte pour créer d'autres utilisateurs.

- Peu probable : une personne a accès à la base de données directement et crée des comptes utilisateurs.
Dans 'configuration' 'paramètres de compte' j'avais laissé le 'Qui peut enregistrer des comptes ? ' en ' Les visiteurs, mais l'approbation d'un administrateur est requise ' c'est peut-être par là que ça passait.

Je ne connais pas trop les méthodes pour éviter les injections sql, si tu as des conseils à me donner je suis preneur.
Modérateur
Bonjour blond1n,

blond1n a écrit :
Dans 'configuration' 'paramètres de compte' j'avais laissé le 'Qui peut enregistrer des comptes ? ' en ' Les visiteurs, mais l'approbation d'un administrateur est requise ' c'est peut-être par là que ça passait.


Oui, sans aucun doute, puisque les comptes n'étaient pas actifs par défaut.

blond1n a écrit :

Je ne connais pas trop les méthodes pour éviter les injections sql, si tu as des conseils à me donner je suis preneur.


Le Web regorge d'articles sur les injections SQL. Il suffit de rechercher sur Google des termes comme "PHP Injection SQL" ou "Le langage de ton choix + Injection SQL" ou "Comment se protéger des injections SQL". C'est important de bien comprendre comment quelqu'un peut s'y prendre pour injecter du SQL et ensuite, d'apprendre les méthodes pour se protéger. Cela varie selon le langage utilisé. En PHP, l'utilisation de PDO revient souvent avec les requêtes préparées et des paramètres bien définis.

D'après la documentation de Drupal 7, ils ont un API pour faire des requêtes SQL. Et j'ai vu passer PDO aussi dans certains articles qui parlaient de Drupal.

Dès que tu construis une requête SQL, assure-toi d'utiliser la méthode sécuritaire pour passer les paramètres dynamiques, peu importe d'où proviennent ces paramètres : champs d'un formulaire, paramètres dans l'URL, valeurs dans un cookie, donnée de ta propre base de données, etc...
Ne sachant pas 'coder' je ne fais aucune requête sql. Je vais regarder un peu tout ça sur GGLE.

Je vais voir si des nouveaux profils apparaissent avec la modification que j'ai apporté.

Merci de tes réponses !