Come proteggere un servizio Web che consente percorsi personalizzati definiti dall'utente?

2

Sto lavorando su un sito web che ricostruirà i dati come feed RSS basato su un percorso personalizzato.

Ad esempio: hai un video su youtube che vuoi un feed rss di commenti, puoi aggiungere -rss all'url (facendolo su youtube-rss.com/asdasdasd) e l'app web analizzerà il percorso e il calcio fuori il feed RSS.

Come si blocca il gestore del percorso verso il basso e si evitano input dannosi? Risanamento delle stringhe? Convalida? Qualcos'altro?

    
posta Jim Angel 16.03.2018 - 18:40
fonte

1 risposta

1

Alcuni URL hanno un significato speciale per determinati servizi Web e software client che è necessario assicurarsi che non possano essere utilizzati per portare a contenuti arbitrari. ("/Crossdomain.xml" di Flash, LetsEncrypt "/.well-known/<...>", "google < ... > .html", ecc. Di verifica del dominio Google. Immagina se qualcuno crea un video su YouTube il video denominato "crossdomain.xml" con contenuto xml valido all'interno della descrizione del video impostato per ingannare il plug-in Flash dei visitatori in modo che il sito dell'aggressore possa liberamente effettuare connessioni ajax al tuo dominio e quindi accedere a "youtube-rss.com/crossdomain". xml "ha attivato una ricerca di YouTube per" crossdomain.xml "e ha visualizzato la descrizione del primo risultato. L'attacco esatto potrebbe non funzionare a seconda dei dettagli su Flash e sul tuo sito web, ma ci sono tantissime possibilità come questa che potrebbero funzionare se permetti a qualsiasi URL di includere contenuti controllati dall'utente.

Un modo semplice ed efficace per difendersi da questo senza dover enumerare tutti gli URL speciali possibili sarebbe avere una whitelist rigida di pattern supportati nell'URL. Se gli URL di YouTube che ti interessano imitare seguono sempre un formato come "/ video? Id = [a-z0-9 _] +" e "/ [a-z0-9 _] +", quindi elabora solo questi tipi di URL, e assicurati di limitare correttamente i simboli consentiti negli identificatori. Non inserire nella lista nera questi URL (perché ce ne sono sicuramente molti altri simili), ma controlla che questi non superino la tua whitelist: "youtube-rss.com/crossdomain.xml", "youtube-rss.com/.well -known / abc "e" youtube-rss.com/google123.html ".

    
risposta data 16.03.2018 - 23:04
fonte

Leggi altre domande sui tag