Un rendering sink è qualsiasi percorso di codice in cui input non attendibile viene inserito in una pagina web o in un componente dell'interfaccia utente per la visualizzazione. In pratica, è il punto in cui i dati diventano HTML, testo, contenuto di attributi o markup simile a quello di uno script. Tra i sink comuni rientrano innerHTML, le funzioni di rendering dei template, i costruttori di tooltip e i campi di etichetta o popup nei widget delle mappe.
I rendering sink sono importanti perché è qui che devono avvenire la codifica e la sanitizzazione dell'output. Se dati controllati da un attaccante raggiungono un sink senza un'adeguata escape, il browser potrebbe trattarli come codice anziché come testo, creando un rischio di cross-site scripting. I difensori cercano questi sink durante la revisione del codice, i test e l'applicazione di patch, quindi applicano codifica contestuale, sanitizzazione e API più sicure che inseriscono testo anziché markup. Negli attacchi, il sink è spesso il passo finale che trasforma un campo apparentemente innocuo, come un'etichetta di un pin o un valore di metadati, in un'iniezione di codice lato browser.


