Générer multipart limite
Je suis en train d'écrire un script qui télécharge un fichier à un script cgi qui prévoit un multipart demande, comme un formulaire sur une page HTML. Le boundary
est un jeton unique qui annote le fichier contenu dans le corps de la requête. Voici un exemple de corps:
--BOUNDARY
Content-Disposition: form-data; name="paramname"; filename="foo.txt"
Content-Type: text/plain
... file contents here ...
--BOUNDARY--
La boundary
ne peut pas être présent dans le contenu du fichier, pour des raisons évidentes.
Que dois-je faire afin de créer un unique limite? Dois-je générer une chaîne de caractères aléatoires, vérifier pour voir si elle est dans le contenu du fichier, et si elle l'est, générer un nouveau, rincer et répéter, jusqu'à ce que j'ai une chaîne unique? Ou un "peu aléatoire jeton" (par exemple, la combinaison de l'horodatage, l'id du processus, etc) assez?
- Quel langage utilisez-vous? Habituellement, une telle chose est gérée par une bibliothèque.
- Je suis l'aide de Ruby. Il devrait être dans la stdlib, cependant, ne peut pas utiliser des gemmes depuis le script doit être exécutable sur n'importe quel système avec ruby installé, sans avoir à installer des gems.
Vous devez vous connecter pour publier un commentaire.
Si vous êtes paranoïaque, vous pouvez générer aléatoirement une limite pour faire une recherche dans la chaîne à envoyer, ajouter aléatoire char (ou re-créer de nouveaux) sur trouver, répétez. Mais mon expérience est tout arbitraire non-dictionnaire de chaîne de 10 caractères est impossible de se produire, afin de choisir quelque chose comme ---LIMITE-LIMITE---LIMITE--- est tout à fait suffisante.
Content-Encoding: gzip
et arrêtez de vous inquiéter à propos des utilisateurs qui essaient de vous.Si vous utilisez quelque chose de suffisamment aléatoire comme un GUID il ne devrait pas y avoir besoin de fouiller dans la charge utile de vérifier pour un alias de la frontière. Quelque chose comme:-
----=NextPart_3676416B-9AD6-440C-B3C8-FC66DDC7DB45
En-tête:....
Charge utile
----=NextPart_3676416B-9AD6-440C-B3C8-FC66DDC7DB45--
Pour Java gars :
Url de référence : http://hc.apache.org/httpcomponents-client-ga/httpmime/xref/org/apache/http/entity/mime/MultipartEntity.html
Et pour la Swift personnes (à l'équilibre de l'Java):