Un tiers nous envoie un fichier plat qui est censé contenir exclusivement des caractères ASCII imprimables. Cependant, nous avons découvert qu'il existe une chaîne d'environ 50 0x00
octets au milieu du fichier.Quelles sont les ramifications de null octets et multipart/form-data?
Nous voulons être en mesure de télécharger le fichier dans notre application Web, mais j'ai découvert que Django ne semble pas aimer les caractères nuls dans la multipart/form-data. Si je supprime les caractères null, le téléchargement réussit. (Désolé je n'ai pas la trace de pile disponible pour le moment, mais j'en produirai un si nécessaire)
Nous pouvons pré-traiter le fichier pour supprimer les caractères null et/ou travailler avec notre tierce partie pour corriger leur fichier générateur, mais je n'aime pas laisser des problèmes mystiques comme celui-ci.
Cela ressemble-t-il à un bogue dans Django ou y a-t-il un aspect de multipart/form-data que je ne comprends pas complètement? Ai-je besoin de définir un encodage de transfert pour que Django ne soit pas bloqué sur les caractères nuls?
Les octets null fonctionnent très bien, à condition que les en-têtes MIME associés au fichier spécifient que les données de fichier utilisent un codage capable de gérer correctement les caractères null. –