GNU/Linux >> Tutoriales Linux >  >> Linux

¿Script para determinar si los archivos son imágenes?

Me gustaría crear un script de shell que verifique que todos los archivos en un directorio sean archivos de imagen.

Recientemente tuvimos un problema en el que un pirata informático pudo generar un archivo en un directorio y enmascararlo como un archivo .jpg. Me gustaría crear un script de shell para verificar todos los archivos en el directorio y asegurarme de que sean archivos jpg, gif o png reales.

Respuesta aceptada:

Creo que debes tener mucho cuidado al usar file en una circunstancia en la que le das una entrada completamente no confiable. Por ejemplo, RHEL 5 file identificará esto:

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

Como "Datos de imagen GIF, versión 87a, 15370 x 28735". El intérprete de PHP no tiene problemas para ejecutar esa entrada. Esa falta de problemas es la base de los problemas de "inclusión de archivos locales" (LFI).

Segundo, file (e incluso strings ) en realidad analiza los archivos de entrada para decirle lo que quiere saber. Estos analizadores son complicados y tienen problemas.

Voy a sugerir el identify comando fuera de la suite ImageMagick. No se deja engañar por mi simple ejemplo anterior, y solo analiza correctamente los archivos de imagen, por lo que debería ser menos propenso a fallas de seguridad que file .


Linux
  1. Mover archivos en Linux sin mv

  2. ¿Se puede conectar un script Bash a un archivo?

  3. ¿Determinar Shell en el script durante el tiempo de ejecución?

  4. ¿Script de Shell para mover archivos más antiguos?

  5. Contar líneas en archivos grandes

Comando Cp en Linux (Copiar archivos)

35 ejemplos de secuencias de comandos Bash

Cómo cambiar el nombre de un archivo (s) en Linux

Steganography – Ocultar archivos dentro de imágenes en Linux

Transferir archivos usando WinSCP

Cómo comprimir un archivo en Linux