EDIT ci sono stati ritorsioni a monte o downvotes a causa, credo, di un grave fraintendimento della mia domanda. Di seguito non sono preoccupato dell'URL che porta a un sito che contiene malware o exploit (non che non sia una preoccupazione: semplicemente non è ciò di cui tratta questa domanda): sono preoccupato dell'iniezione nella stringa URL stessa. Quello che non voglio è che un pirata sia in grado di schivare la sicurezza "qualunque sia la struttura" ed essere in grado di iniettare, per esempio, il codice JavaScript in un URL che vorrei quindi mostrare ad altri utenti. In altre parole: sto cercando un'ulteriore misura per ridurre il rischio di rogue JavaScript in esecuzione come se provenisse dalla mia webapp.
Per indurire una webapp, sto pensando di non visualizzare mai gli URL inseriti dagli utenti e tuttavia consentirgli di inserire gli URL ma di utilizzare sempre un servizio di abbreviazione degli URL. Questo non ha lo scopo di sostituire altre buone pratiche di sicurezza ma di essere utilizzato in aggiunta ad altre pratiche di sicurezza.
Ecco uno scenario molto semplice:
- l'unica cosa che un utente può inserire nel sito Web è un singolo URL
- l'URL inviato dall'utente viene inviato a un servizio di accorciamento dell'URL esterno
- l'URL abbreviato viene quindi pubblicato dal mio sito web
Se durante il primo passaggio consideriamo che il mio parser non ha difetti durante l'analisi dei parametri POST inviati dall'utente, cosa può andare storto in seguito se c'è un exploit di successo nell'URL che potrebbe influenzare il servizio di accorciamento dell'URL?
Fondamentalmente la mia idea sarebbe di servire, ad esempio, un hardcoded:
http://bit.ly/
seguito da una regola molto severa che dice qualcosa come: "inserisce al massimo 9 caratteri e questi caratteri devono essere alfanumerici" .
Lo farei per semplificare la regola relativa a quali caratteri possono e non possono essere inviati dall'utente: l'output di un URL bit.ly è molto più semplice di quello consentito dagli URL legittimi ( Ho usato bit.ly come esempio, qualsiasi servizio di accorciamento dell'URL che utilizza un sottoinsieme molto ristretto di caratteri negli URL abbreviati che restituisce farebbe).
Quindi, quale sarebbe il caso peggiore di se consideriamo che l'utente non autorizzato è in grado di sfruttare il mio sito web ma riesce comunque a sfruttare un difetto nel servizio di abbreviazione URL?
Quello che mi piacerebbe capire meglio è che cosa significa quando si tratta della stessa politica di origine / XSS e CSRF e altri tipi di exploit.
E, credo, la mia domanda potrebbe essere ripresa in questo modo: "Se la sicurezza viene eseguita correttamente sul mio sito web, gli exploit XSS che influiscono sul servizio di accorciamento dell'URL potrebbero essere la mia preoccupazione o no?"
L'idea generale sarebbe quella di aggiungere la difesa in profondità e considerare che il servizio di abbreviazione degli URL probabilmente sa come difendersi dalle iniezioni di URL.