Je fais un CMS qui peut être étendu par des développeurs tiers. Dans le passé, j'ai eu des problèmes avec les développeurs débutants ignorant la sécurité tous ensemble. Quand ils mettent leurs modules sur mon site Web, ils compromettent potentiellement les sites Web des utilisateurs.PHP - Désinfecter toutes les données?
Je souhaite créer un objet globals. Cela écrase tous les globaux avec une copie aseptisée. Cela pourrait causer des problèmes, donc cet objet fournira également une option pour obtenir des données non anonymes. De cette façon, par défaut, les développeurs pourraient théoriquement faire quelque chose comme ça et son effet ne serait pas aussi mauvais qu'il le serait en général. (Il est évident que ce serait encore potentiellement causer des problèmes mais les tables ne seront pas supprimées et les données ne seront pas exposés.)
mysql_query("INSERT INTO users (`name`) VALUES ('{$_POST['name']}')");
Cela ne protège pas contre les développeurs qui tentent délibérément de briser les choses. Cependant, cela aidera à éliminer les erreurs de base.
L'objet final doit être accédé comme suit.
$_POST['key']; // Provides Sanitized version of the post key.
$obj->post('key'); // Provides Sanitized version of the post key.
$obj->post_raw('key'); // Provide unsanitized version of the post key.
Que pensent les gens de cette approche? Y a-t-il une fonction éprouvée de «fuite à tous» qui circule pour atteindre cet objectif?
Magic Quotes n'est * pas * une solution complète! En fait, ils impliquent plutôt une fausse sécurité. – Gumbo
Tout à fait.Les citations magiques sont peut-être le plus grand échec de PHP, ce qui en dit long. – chaos