SPW-DIG / metawal-core-geonetwork

Metawal - Catalogue pour l'information géographique de Wallonie
http://metawal.wallonie.be
GNU General Public License v2.0
3 stars 1 forks source link

Impossible de supprimer une image qui contient ".." dans le nom du fichier #652

Closed vbombaerts closed 2 years ago

vbombaerts commented 2 years ago

J'ai chargé une vignette sans voir que son nom contenait un double point avant l'extension. J'essaie de la supprimer depuis l'interface de gestion des fichiers liés --> impossible J'essaie de télécharger le MEF/ZIP pour la supprimer du ZIP et la recharger --> impossible Donc pas possible de supprimer le fichier. (il reste l'option de créer une nouvelle fiche, recopier le XML, déplacer les docs associés puis supprimer la fiche originale --> je n'ai pas testé) La fiche : http://metawal.wallonie.be/geonetwork/srv/fre/catalog.search#/metadata/cf9fd269-3943-491b-b29c-75ce2bf8896b L'image : http://metawal.wallonie.be/geonetwork/srv/api/records/cf9fd269-3943-491b-b29c-75ce2bf8896b/attachments/SES_Contexteecologique_Vignette..JPG

<apiError>
<code>forbidden</code>
<description>Invalid resource identifier 'SES_Contexteecologique_Vignette..JPG'.</description>
<message>SecurityException</message>
</apiError>
fxprunayre commented 2 years ago

Hum, en effet :) ".." on aime pas bien dans les noms des fichiers car ça pourrait permettre de remonter dans un répertoire parent (donc pb de sécurité). Faudrait empêcher l'upload de fichier avec .. dans le nom, du coup.

fxprunayre commented 2 years ago

Bon, j'ai pas vraiment de solution miracle. Je vais ajouter la même vérification lors de l'ajout de l'image que lors de la récupération. Donc on ne pourra pas uploader une image avec ".." dans le nom du fichier.

Pour contourner.

curl 'http://localhost:8080/geonetwork/srv/api/records/21501?withBackup=false' \
  -X 'DELETE' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'X-XSRF-TOKEN: 46f35f0d-5985-46d7-8c91-510a8cea3d91' \
  -H 'Cookie: XSRF-TOKEN=46f35f0d-5985-46d7-8c91-510a8cea3d91; JSESSIONID=node01h4xrn1k2oo241m04v26e6nzrg1.node0; org.cups.sid=edd5dddb2b4ccec303ea445f4037d843; _ga=GA1.1.1486982330.1626957579; JSESSIONID=B189CD1F7B6D9FC0BC02A7061954880B; _gid=GA1.1.272652454.1631795213; _gat=1; serverTime=1631803897266; sessionExpiry=1631805997266' \
  --compressed

J'ai pas mieux.

fxprunayre commented 2 years ago

A déployer.

vbombaerts commented 2 years ago

@fxprunayre C'est quoi que tu appelles la "console réseau" ? J'ai créé une nouvelle fiche (avec nouvel identifiant) mais pas réussi à supprimer l'ancienne.

fxprunayre commented 2 years ago

@fxprunayre C'est quoi que tu appelles la "console réseau" ?

Outil de développement, onglet réseau

Tu peux aussi utiliser https://metawal4.test.wallonie.be/geonetwork/doc/api/index.html#/records/deleteRecord (quand elle marche en prod. En test ça doit être bon) qui proposera l'option withBackup.

vbombaerts commented 2 years ago

Ne fonctionne pas (en prod) image

fxprunayre commented 2 years ago

image

j'ai pas eu de souci en prod. Fiche supprimée https://metawal.wallonie.be/geonetwork/srv/api/records/cf9fd269-3943-491b-b29c-75ce2bf8896b

fxprunayre commented 2 years ago

J'ai utilisé http://metawal.wallonie.be/geonetwork/doc/api/index.html#/records/deleteRecords au lieu de http://metawal.wallonie.be/geonetwork/doc/api/index.html#/records/deleteRecord mais ca devrait être la même chose