When I say comparing hashes I mean once the file is selected the server will create a hash then after the file is uploaded it will create another hash of the same file to see if it has been tampered with.
In primo luogo, non puoi fare affidamento su nulla sul lato client. Un utente malintenzionato potrebbe creare una richiesta POST che invia semplicemente l'hash e il file corretti. (Questo può essere fatto anche con Dati Tamper)
L'hashing protegge dalla manomissione solo quando l'hash è più affidabile del file.
Per proteggerlo, insegnare qualsiasi script sul back-end per rifiutare i file eseguibili (ancora meglio, consenti solo da un piccolo sottoinsieme di estensioni). Quindi puoi controllare se il nome del file ricevuto è di un tipo di immagine. Un utente malintenzionato non può effettuare lo spoofing senza aver già accesso al tuo server.
Se desideri maggiore sicurezza, puoi verificare che si tratti di un'immagine passandola attraverso una funzione di analisi delle immagini.
Si noti che il server deve essere configurato in modo tale che tutti i caricamenti siano archiviati in modo tale che non possano essere eseguiti (Rendere la directory statica in Apache lo aiuterà in parte, è necessario proteggere anche dall'inclusione dei file) .