Page 1 sur 1

Sécurisé input avec str_replace

Posté : 08 sept. 2021, 03:29
par MarYas
Bonjour à tous je voulais savoir au delà des sécurités de base des formulaires es ce bien de faire une fonction avec str_replace comme remplacer le "=" , " ' ", "(", "UPDATE" pour éviter les injections sql voire le nom de notre bd ou des colonnes ?
Merci pour vos réponses .

Re: Sécurisé input avec str_replace

Posté : 08 sept. 2021, 11:29
par ynx
Bonjour,

Non ca ne me semble pas être une bonne idée car on risque facilement d'oublier des mots réservés en sql, sachant que les mots réservés vont dépendre du SGBD utilisé (mysql, postgre, sqlite, etc...).

PHP propose déjà des solutions pour éviter les injections sql :
- avec l'API PDO, il faut utiliser correctement les requêtes préparés avec des marqueurs ou la méthode PDO::quote()
- avec l'API mysqli, il faut utiliser la fonction mysqli_real_escape_string() ou la méthode mysqli::real_escape_string()

Bonne journée,

Re: Sécurisé input avec str_replace

Posté : 08 sept. 2021, 22:21
par MarYas
Slt oui c'est déjà fait en PDO j'utilise même une fonction comme mes réquétes sont les même en gros dans un class et le tout en private.
Mais je pense qu'en plus interdire ces mots-clé peuvent être une bonne solution, être sur qu'on puisse rien faire de ce coté et je compte pas mettre tous les mots sql mais au moins interdire les colonne de mes bd ainsi que le nom de ma bd cela doit suffir même si je connais surement pas toutes les attaques qu'on puisse faire en injection ou attaque sur un site je préfére prévenir que de guerir !
Mais j'utilise ce genre de requete même si je les amélioré depuis sachant que c'est les même requête à peu prés j'ai fait une fonction qui regroupe tout, cad que mes requetes font qu'une seul ligne au lieu des 3
$idcon = connexion();
$requete = $idcon->prepare("DELETE FROM soc WHERE id  = :id");
$requete->execute([":id" => $id]);

Re: Sécurisé input avec str_replace

Posté : 08 sept. 2021, 22:24
par or 1
le mot clé le plus important, c'est union. le bloquer, c'est bloquer un texte comprenant réunion par exemple. une mauvaise idée donc.