Cloud with rain
.:G
G:.
0 and 1 serie, black on white
pulled card
myjsp.feelinglinux.com
ver. 1.1.9-4
Hallo, welcome to my world.
Here you can find some stuff about computer science.
<<< Enjoy your visit! >>>
0 and 1 serie, white on black

Strumenti online: Encode/Decode URI e/o Base64 (Javascript)

        Scritto: Giansante Gabriele, 10/12/2016     

Codifica e decodifica di URI o dell'intero testo (%XX). Codifica e decodifica di testo in Base64.
L'utilizzo e' completamente anonimo, non vengono raccolti dati ne usati cookie appositi relativamente a questo tool.
Segnalatemi liberamente eventuali errori, aggiunte o modifiche utili al tool.
Pubblicita'
Testo (UTF-8)

URI (Percent-Encoding)


? Converti ' in %27

? Converti   in +

? Solo testo selezionato


? Tipo codifica:
   URI
   Tutti i caratteri


? Converti + in  

? Salta % non validi

? Solo testo selezionato

Base64





? Solo testo selezionato


Tool di codifica/decodifica

Questo tool nasce con la speranza di essere utile nella codifica e decodifica di URI, di query e di testo piu' in generale.
Pubblicita'
L'idea mi e' venuta analizzando alcuni dei tanti attacchi ricevuti giornalmente. A volte, nelle richieste HTTP maligne, arrivano tramite "User-agent", "Referer" o query, veri e propri script "sh" (ma non solo) che non sempre sono in chiaro. A volte vengono codificati con la notazione "%XX" (con X cifra esadecimale) e al loro interno possono contenere ulteriori sezioni di codice codificate in Base64 (da decodificare a cura dello script di primo livello). In quelli piu' complicati si trovano ulteriori livelli di annidamento di sezioni codificate, generalmente sempre "Base64" o "%XX".
Siccome sono un tipo un po' curioso, vado sempre a vedere come funzionano, ma per farlo devo decodificare a mano i testi. Ecco perche' mi sono deciso a realizzare un tool semplice e di rapido utilizzo che faciliti le cose non solo a me ma a chiunque voglia usarlo.

Ora, ecco qualche nota relativamente alla sua realizzazione ed al suo utilizzo.
Per informazioni sulla codifica degli URI si puo' leggere l'RFC 3986 (vedi "Riferimenti").
Per la codifica degli URI vengono usate come base le funzioni javascript "encodeURIComponent" e "decodeURIComponent", ad eccezione del caso in cui si voglia codificare/decodificare l'intero testo, compresi i caratteri ASCII normalmente ammissibili. In questo caso e' stata realizzata una implementazione apposita per la codifica, mentre la decodifica utilizza comunque "decodeURIComponent".
Sono disponibili diverse opzioni per la codifica/decodifica delgi URI.

Opzioni di codifica:
  • Converti "'" in "%27"
    L'apice normalmente non viene codificato dalla funzione "encodeURIComponent". Selezionando questa opzione e' possibile codificarlo. Valida solo per la codifica URI, mentre e' sempre attiva per la codifica di tutto il testo (vedi scelta tipo codifica)
  • Converti " " in "+"
    Il carattere "spazio" non dovrebbe essere presente negli URI e normalmente viene codificato in "%20" o convertito in carattere "+". Possono essere usate entrambe le soluzioni, ma la funzione "encodeURIComponent" codifica in "%20". Selezionando questa opzione, viene data la possibilita' di convertire gli spazi in "+".
  • Solo testo selezionato
    Attivando questa opzione viene codificato solamente il testo selezionato invece che tutto. Ne ho verificato il funzionamento sui principali browser (Firefox, Chrome, Edge), nelle versioni piu' recenti. Potrebbe pero' non avere effetto o non funzionare correttamente su altri browser.
  • Tipo codifica
    E' possibile codificare il testo (intero o solo quello selezionato) come URI (cioe' solo i caratteri non ammissibili) o interamente (tutti i caratteri).

Opzioni di decodifica:
  • Converti "+" in " "
    Il carattere "spazio" non dovrebbe essere presente negli URI e normalmente viene codificato in "%20" o convertito in carattere "+". La funzione "decodeURIComponent" ignora il carattere "+" e considera solo il %20. Selezionando questa opzione, viene convertito il carattere "+" in "spazio".
  • Salta "%" non validi
    Mi sono accorto che alcuni attacchi arrivano con testo codificato in modo errato (errore umano, errore di trasmissione, ecc.), ovvero con caratteri "%" non seguiti dalle previste due cifre esadecimali.
    Che si tratti di decodifica del testo di un attacco o di decodifica di testo di qualsiasi altro tipo, comunque la funzione "decodeURIComponent" non e' in grado di decodificare se nel testo sono presenti caratteri "%" che non appartengono ad una sequenza "%XX" (es. "%%6D", %5F%72% %56", ecc. impediscono alla funzione di decodificare). Selezionando questa opzione si attiva una preelaborazione che consente a "decodeURIComponent" di funzionare correttamente.
  • Solo testo selezionato
    Attivando questa opzione viene decodificato solamente il testo selezionato invece che tutto. Ne ho verificato il funzionamento sui principali browser (Firefox, Chrome, Edge), nelle versioni piu' recenti. Potrebbe pero' non avere effetto o non funzionare correttamente su altri browser.


Oltre alla codifica di URI o testo in "%XX" e' possibile codificare o decodificare testo in Base64. La codifica e la decodifica avvengono rispettivamente tramite le funzioni Javascript "btoa" e "atob".

Opzioni Base64:
  • Solo testo selezionato
    Attivando questa opzione viene codificato/decodificato solamente il testo selezionato invece che tutto. Ne ho verificato il funzionamento sui principali browser (Firefox, Chrome, Edge), nelle versioni piu' recenti. Potrebbe pero' non avere effetto o non funzionare correttamente su altri browser.



Riferimenti

RFC 3986
https://tools.ietf.org/html/rfc3986


Hai trovato utile questo articolo?
Aiutami a condividerlo o metti un "mi piace".
Grazie mille!


Gli strumenti di condivisione (Google+, Facebook) sono visibili in alto a destra solo dopo aver accettato la policy di utilizzo dei cookie per questo sito.
FAQ - Come faccio a cambiare la mia scelta?

 

Strumenti (myjsp.feelinglinux.com)
Gioco: allenamento con la tastiera Strumenti di codifica/decodifica URI (%-encoding) e Base64 Strumenti di calcolo online per IP e Reti
QUIZ GAME
Quiz game

Cerca @myjsp.feelinglinux.com

Pubblicita'