GNU/Linux >> Tutoriels Linux >  >> Linux

Script pour déterminer si les fichiers sont des images ?

Je voudrais créer un script shell qui vérifiera que tous les fichiers d'un répertoire sont des fichiers image.

Nous avons récemment eu un problème où un pirate pouvait générer un fichier dans un répertoire et le masquer en tant que fichier .jpg. Je voudrais créer un script shell pour vérifier tous les fichiers du répertoire afin de m'assurer qu'il s'agit de vrais fichiers jpg, gif ou png.

Réponse acceptée :

Je pense que vous voulez faire très attention à l'utilisation de file dans une circonstance où vous lui donnez une entrée totalement non fiable. Par exemple, RHEL 5 file identifiera ceci :

GIF87a
<?php
echo "Hello from PHP!n";
?>

En tant que "Données d'image GIF, version 87a, 15370 x 28735". L'interpréteur PHP n'a aucun problème à exécuter cette entrée. Cette absence de problème est à la base des problèmes d'"inclusion de fichiers locaux" (LFI).

Deuxièmement, file (et même des strings ) analyse en fait les fichiers d'entrée pour vous dire ce que vous voulez savoir. Ces analyseurs sont compliqués et ont des problèmes.

Je vais suggérer le identify commande de la suite ImageMagick. Il n'est pas dupe de mon exemple simple ci-dessus, et il n'analyse correctement que les fichiers image, il devrait donc être moins sujet aux failles de sécurité que file .


Linux
  1. Un script Bash peut-il être accroché à un fichier ?

  2. Déterminer Shell dans le script pendant l'exécution ?

  3. Script Shell pour déplacer les fichiers les plus anciens ?

  4. Supprimer les fichiers répertoriés dans un fichier texte

  5. Déterminez si le système de fichiers ou la partition est monté RO ou RW via Bash Script ?

Commande Cp sous Linux (Copier des fichiers)

35 exemples de scripts bash

Comment renommer un ou plusieurs fichiers sous Linux

Stéganographie - Masquer les fichiers à l'intérieur des images sous Linux

Transférer des fichiers à l'aide de WinSCP

Comment compresser un fichier sous Linux