Forum CMS Made Simple FR

Version complète : sécurité formulaire dans UDT
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.2
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~


Bonjour à tous,

Une question surement un peu bête...
En règle générale, sur cmsms, quelle est la meilleure façon de sécurier des données envoyées par formulaire puis, insérées dans la base de donnée, sachant que le formulaire et le traitement se fait dans une UDT?

merci de vos lumières
ça date un peu, mais c'est toujours valable :
http://www.phpsecure.info/v2/article/Mai...Inject.php

De plus il faut "nettoyer" les données $_POST

http://fr.php.net/manual/fr/book.filter.php

il y a aussi des nettoyages manuels du style strip_tags, htmlspecialchars() , htmlentities().
lorsqu'on utlise des fonctions comme celle là, les données sont envoées brutes à la bd ou déjà protégées par un mysql_real_escape_string?

Code :
[== Indéfini ==]
$query = 'INSERT INTO '.cms_db_prefix().'module_products_fieldvals (product_id, fielddef_id, value, create_date, modified_date) VALUES (?,?,?,?,?)';

$db->Execute($query, array($idA, $fid, $fival, trim($db->DBTimeStamp(time()), "'"), trim($db->DBTimeStamp(time()), "'")));
Citation :lorsqu'on utlise des fonctions comme celle là, les données sont envoées brutes à la bd ou

c'est une requête normale qui passe simplement par ADOdb ou ADOdblite suivant la version du cms
je m'en suis rendu compte en vérifiant plusieurs éléments.
ayant un soucis avec mysql_real_escape_string je pensais qu'une première couche de protection étaient appliquée mais en fait non, c'est les magic_quotes _gpc qui sont activées sur le serveur provisoire que j'utilise.
donc, pour prévenir des injections sql, je fais comme ça:

Code :
[== Indéfini ==]
$db->Execute($query, array_map('mysql_real_escape_string',(array($idA, $fid, $fival, trim($db->DBTimeStamp(time()), "'"), trim($db->DBTimeStamp(time()), "'"))));

est-ce une façon correcte de gérer le truc?
La fonction "prepare" d'Adodb intégré à CMSMS est-elle disponible ?
C'est, d'après ce dont je me souviens, la méthode la plus fiable de sécuriser une requête.
je sais pas, va falloir regarder car avec mysql_real_escape_string j'ai du faire un plugin pour stripslasher les données affichées dans les templates du module concerné, plus je dois rajouter un nl2br pour garder mes retours à la ligne rentrés en textarea.
C'est géré comment dans formbuilder?
Citation :c'est les magic_quotes _gpc qui sont activées

Cette fonctionnalité est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.
De plus supprimée en PHP 5.4
je le sais bien, c'est pour ça que j'ai demandé sa desactivation.
Mais ils sont pas vraiment réactifs question hotline chez mon hébergeur!