Ho cercato su google un significato di rappresentazione canonica e ho trovato documenti che sono completamente troppo criptici. Qualcuno può fornire una rapida spiegazione della rappresentazione canonica e anche quali sono le tipiche vulnerabilità nei siti Web agli attacchi di rappresentazione canonica?Cosa significa Rappresentazione canonica e la sua potenziale vulnerabilità ai siti web
risposta
La canonizzazione è il processo mediante il quale si immette un input, ad esempio un nome di file o una stringa, e lo si trasforma in una rappresentazione standard.
Ad esempio se l'applicazione Web consente solo l'accesso ai file in C: \ websites \ mydomain, in genere qualsiasi input che fa riferimento a nomi di file è canonicizzato per essere un percorso fisico diretto, piuttosto che uno che utilizza percorsi relativi. Se si desidera aprire C: \ websites \ mydomain \ example \ example.txt, un input in tale funzione potrebbe essere esempio \ esempio.txt. È difficile capire se questo va oltre i confini del tuo sito web, quindi la funzione di canonicalizzazione dovrebbe guardare la directory dell'applicazione e cambiare quel percorso relativo in uno fisico, C: \ websites \ mydomain \ example \ example.txt. Questo è ovviamente più facile da verificare, come si fa semplicemente una stringa confrontare all'inizio del percorso del file.
Per gli input HTML si prendono input come% 20 e li si canonicalizzano tramite unencoding, quindi questo si trasformerebbe in uno spazio. Questa è una buona idea dato che il numero di modi diversi di codifica è elevato, la canonicalizzazione significa che verificherai solo la stringa decodificata, piuttosto che cercare di coprire tutte le varianti di codifica.
Fondamentalmente si sta prendendo input che è logicamente equivalente e convertendoli in un modulo standard su cui è possibile agire.
quindi potenzialmente in un campo di input potrei provare a fare un attacco SQL injection o un possibile XSS per bypassare la normale sanitizzazione delle stringhe? – predhme
L'igiene è diversa. Generalmente un attacco SQL injection non utilizzerà la codifica, quindi non si tratta di un problema di canonicalizzazione. XSS può essere, dipende da quello che fai. Se si codifica tutto l'input prima di emetterlo, no, non lo è. Tuttavia, se si sta tentando di creare una lista bianca o una lista nera peggiore di certe parti di una stringa, è necessario innanzitutto inizializzare la stringa perché, ad esempio,
Canonico (penso) significa che l'input della console è "comportamento tipico". Non canonico significa che l'input non è standard e richiede una conoscenza speciale, come il comportamento di input di "vi" su linux.
fonte
2009-07-22 18:54:43 djangofan
Ma come si applica ai siti Web e alla vulnerabilità? – predhme
Vedere la risposta di blowdart per una definizione di canonico –
La mia risposta non è affatto in conflitto con la risposta di Blowdarts, tranne che potrei spiegarlo in una frase. Per i programmatori, l'efficienza è la chiave. – djangofan
La seguente spiegazione è dal "Application Security e Sviluppo STIG" trovato here:
fonte
2011-02-04 18:30:46 CrazyPyro
Canonicalizzazione significa ridurre i dati ricevuti nella sua forma più semplice, è utilizzato per la convalida dell'input.
fonte
2014-04-10 18:35:02 germangti