sécuriser upload fichier csv.gz

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : sécuriser upload fichier csv.gz

Re: sécuriser upload fichier csv.gz

par @rthur » 11 mars 2022, 08:18

Pour la partie antivirus, voici 2 pistes :
https://phpmussel.github.io/
https://github.com/appwrite/php-clamav <- pour celui ci il faut installer l'applicatif Clamav donc faisable que sur un serveur dédié mais pas un mutualisé

Re: sécuriser upload fichier csv.gz

par Voxgaming » 10 mars 2022, 22:45

Merci pour ces précisions.

Re: sécuriser upload fichier csv.gz

par @rthur » 10 mars 2022, 15:44

Non dézipper un fichier n'est pas l'exécuter.
Idem, ouvrir un CSV ne l'exécute pas.
Quand je dis de contrôler le format et bien c'est que si tu attends un CSV avec un nombre de colonnes précises, vérifier que c'est bien le cas et filtrer chaque donnée que tu y récupères pour être sûr qu'elle soit dans le format attendu : si ça doit être un chiffre ou un nombre, ou une liste de valeurs possibles (parmi une liste fixe), une chaine de caractères sans caractères spéciaux, etc... c'est en ça que filter_var() peut t'aider

Si ta source de données n'est vraiment pas fiable, tu peux aussi installer un antivirus et lui soumettre ton fichier avant/après dézippage.

Re: sécuriser upload fichier csv.gz

par Voxgaming » 10 mars 2022, 11:51

Salut @rthur
Merci pour ton aide.
Quand tu dis tu vérifies le format des fichiers, je crois que tu fais référence au type MIME mais j'ai plusieurs fois lu sur des forums que c'était facilement manipulable.
Quand bien même je suis sur de télécharger un .gz je me dis qu'une archive peut contenir n'importe quoi ( que je décompresse dans la foulée)
D'ailleurs le fait de décompresser une archive revient à l'exécuter (?), est-ce que cela existe des .gz vérolés qui s'activent à la décompression?

Code : Tout sélectionner

function gzDecompressFile($srcName, $dstName) { if ($file = gzopen($srcName, 'rb')) { $out_file = fopen($dstName, 'wb'); while (($string = gzread($file, 4096)) != '') { if (!fwrite($out_file, $string)) { } } fclose($out_file); gzclose($file); } }
Ensuite tu parles de filtrer les variables avec filter_var, est-ce que tu peux me donner un exemple de ce que tu filtrerais et avec quel filtre car c'est un peu flou pour moi ( j'ai bien lu le contenu de ton lien + le détail de [NDD REFUSE]/manual/fr/filter.filters.php
Merci encore pour ton aide.

Re: sécuriser upload fichier csv.gz

par @rthur » 10 mars 2022, 00:24

Tu vérifies le format des fichiers reçus et tu filtres toutes les variables que tu récupères au sein des fichiers comme si elles venaient d'une source non fiable (filter_var() est ton amie )
https://www.php.net/manual/fr/function.filter-var.php

sécuriser upload fichier csv.gz

par Voxgaming » 09 mars 2022, 19:00

Salut,
Petite question pour les devs qui ont l'habitude de travailler avec les flux partenaires des plateformes d'affiliations.

Via un script PHP sur mon serveur je :
- récupère une archive .csv.gz ( un catalogue partenaire) sur un site tiers
- la copie
- la décompresse et enregistre le nouveau fichier .csv pour pouvoir travailler avec ( en gros envoyer en base de données)

Je me pose la question de la sécurité. Les sites d'affiliation sont super connus et sérieux mais personne n'est à l'abri d'une faille et donc je me sens pas à l'aise d'upload sur mon serveur des fichiers tiers.

Comment gérez-vous la sécurité dans ce genre de cas... hormis la solution de travailler sur un serveur spécifique qui ne ferrait que ce genre d'opérations "risquées"

Merci d'avance pour vos réponses.