Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Squid

    Ciao a tutti!

    Sto studiando SQUID e non riesco a risolvere il seguente problema:

    Ho un form attraverso il quale dò la possibilitò agli utenti di caricare i propri documenti in pdf.
    Vorrei impedire agli utenti la possibilità di fare l'upload di file php in modo da scongiurare l'upload di shell tipo c99.php

    La mia soluzione non funziona:

    # specifico il tipo di file che non si può caricare

    acl upload_pdf rep_mime_type -i application/x-php

    # specifico l'indirizzo ip (per prova utilizzo il mio) dal quale non è possibile caricare i file php

    acl alex src 127.0.0.1

    # specifico l'indirizzo ip del web server da proteggere

    acl domini dstdomain 127.0.0.1

    # specifico i metodi che non si possono utilizzare

    acl metodi method PUT POST

    # imposto le regole

    http_access deny alex domini metodi upload_pdf
    http_access allow alex domini
    http_access deny domini


    Grazie a tutti!

  2. #2
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    Filtrare sul tipo MIME presente nel Content-Type della richiesta non mi sembra una buona strategia, per almeno due motivi:

    1) essendo una informazione inviata dal client può facilmente essere falsificata senza pregiudicare il salvataggio del file con la corretta estesione php.

    2) da un paio di prove veloci che ho fatto, il Content-Type inviato dal browser nel caso di upload non è univoco nè ben determinato. Nel caso di un file con estensione PHP, Firefox invia un MIME appplication/octet-stream, IE6 addirittura un text/plain. Come vedi nessun application/x-php.

    L'unico test valido, sarebbe un check dell'estensione del file inviato. E' l'estensione che effettivamente indica al server che deve essere invocato PHP per l'interpretazione del file. All'interno dell'header della richiesta, il nome del file è presente nella voce Content-Disposition. La cosa ideale sarebbe usare una regexp su tale campo per individuare l'estensione .php. Non conosco bene Squid, ho dato una occhiata veloce alle possibilità offerte dalle ACL e non mi sembra sia possibile un filtraggio su un campo arbitrario dell'header... non so quindi se il problema sia risolvibile con il solo uso di Squid.
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  3. #3
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Se il tuo webserver gira su *Nix, puoi usare efficacemente il comando file del SO a tale fine: per ogni file caricato, fai eseguire a PHP il comando suddetto e ne parsi la risposta.

    Ciò vale anche per controllare l'upload di file eseguibili, ecc ecc.

    [.:: JaguarXF ::.]
    __________________

  4. #4
    Grazie a tutti per le risposte!

    Ma mi sorge un'altra domanda:
    Il mio web server gira su Linux ma in che modo potrei automatizzare il controllo dei file caricati?

    Apache ha una qualche impostazione che permette di automatizzare questo?

    Grazie!

  5. #5
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    No, usi il comando 'file' tramite PHP.

    [.:: JaguarXF ::.]
    __________________

  6. #6

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.