Domanda

Ho cercato su google per un senso di rappresentazione canonica e alzato documenti che sono interamente troppo criptico. Qualcuno può fornire una rapida spiegazione di rappresentazione canonica e anche quali sono alcune vulnerabilità tipiche di siti web per attacchi di rappresentazione canonica?

È stato utile?

Soluzione

Canonicalisation è il processo mediante il quale si prende un input, ad esempio un nome di file, o una stringa, e di trasformarlo in una rappresentazione standard.

Per esempio, se l'applicazione web consente solo l'accesso ai file in C: \ siti \ mydomain quindi tipicamente qualsiasi ingresso riferendosi a nomi di file è canonicalised ad essere un percorso fisico, diretto, piuttosto che uno che utilizza i percorsi relativi. Se si voleva aprire C: \ siti \ mydomain \ esempio \ example.txt un ingresso in quella funzione potrebbero essere ad esempio \ example.txt. E 'difficile capire se questo va al di fuori dei confini del tuo sito web, in modo che la funzione di canonicalizzazione avrebbe guardato la directory di applicazione e cambiare la situazione percorso relativo in un fisico, C: \ siti \ mydomain \ esempio \ example.txt. Questo è ovviamente più facile da controllare, come si fa semplicemente una stringa confrontare sul all'inizio del percorso del file.

Per gli ingressi HTML si prende ingressi come% 20 e li canonicalise da unencoding, quindi questo si trasformerebbe in uno spazio. Questa è una buona idea come il numero di modi diversi di codifica sono numerosi, canonicalizzazione significa che si desidera controllare la stringa decodificata solo, anziché cercare di coprire tutte le varianti di codifica.

In sostanza si sta prendendo in ingresso, che è logicamente equivalente e convertirli in un modulo standard che è quindi possibile agire.

Altri suggerimenti

La seguente spiegazione è dal "Application Security e Sviluppo STIG" trovato qui :

  

3.11 rappresentazione canonica   sorgono problemi rappresentazione canonica   quando il nome di una risorsa è utilizzata per   Resource Access Control. Ci sono   più metodi di rappresentazione   nomi delle risorse su un sistema informatico.   Una domanda basandosi unicamente su una   nome della risorsa per controllare l'accesso può   erroneamente effettuare un controllo di accesso   decisione se viene specificato il nome in   un formato non riconosciuto.

     

Ad esempio,   in Windows, può essere notepad.exe   rappresentato dal seguente file e   combinazioni di nomi percorso:

     

C: \ Windows \ System32 \ notepad.exe

     

% SystemRoot% \ System32 \ notepad.exe

     

\ \ C:? \ Windows \ System32 \ notepad.exe

     

\ Host \ c $ \ Windows \ system32 \ notepad.exe

     

Una domanda di tentare di limitare   l'accesso al file basata unicamente sulla   percorso e il nome in modo improprio può   concedere o negare l'accesso. Lo stesso problema   può rivolgersi ad altre risorse nominate   un sistema, come ad esempio un hardware e   soft-link, URL, tubo, condividere,   directory, nome del dispositivo, o all'interno dei dati   file, se la codifica alternate   meccanismi sono utilizzati con i dati.

     

Il   seguenti elementi possono indicare il potenziale   problemi di rappresentazione canonica in un   applicazione:

     

• Controllo accessi   decisioni sulla base di un nome di risorsa.

     

• La mancata per ridurre un nome risorsa   la sua forma canonica prima dell'uso.

     

In   Per ridurre al minimo canonica   problemi di rappresentazione della   applicazione, i seguenti   procedure:

     

• Non fare affidamento esclusivamente su   i nomi delle risorse per controllare l'accesso.

     

• Se   utilizzando i nomi delle risorse per il controllo   accesso, convalidare i nomi per garantire   essi sono nel formato corretto; rifiutare   tutti i nomi non montare la nota buona   criteri.

     

• Utilizzo del sistema operativo basato su   meccanismi di controllo di accesso come   permessi e ACL.

Canonicalisation significa ridurre i dati ricevuti alla sua forma più semplice, è utilizzato per la convalida di ingresso.

Canonical (credo) significa che l'ingresso della console è "comportamento tipico". Non canonica significa che l'ingresso è non standard e richiede conoscenze specifiche, come ad esempio il comportamento di ingresso di "vi" su linux.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top