Nous laissons les utilisateurs effectuer des recherches dans une base de données à partir d'une seule entrée de texte et j'ai des difficultés à filtrer certaines chaînes fournies par les utilisateurs.
Par exemple, si l'utilisateur soumet :
lcd SONY
(Notez les ?) Je dois annuler la recherche.
J'ai inclus la version codée en base64 de la chaîne ci-dessus enveloppée de façon à ce qu'elle soit facile à exécuter :
print(base64_decode("1MfLxc/RwdPHIGxjZCBTT05Z"));
J'ai ignoré de telles entrées avant mais maintenant (je ne sais pas pourquoi) je viens de réaliser que la requête de la base de données mysql prend presque une éternité à s'exécuter, donc c'est maintenant une priorité élevée.
Un autre exemple pour souligner que nous utilisons utf-8 et que mb_detect_encoding ne nous aide pas beaucoup :
print(base64_decode("zqDOm8+Fzr3PhM63z4HOuc6/IM+Bzr/Phc+HzyU="));
%
Donc :
- comment puis-je détecter/filtrer ces entrées ?
- comment ces données sont-elles générées ?