Ho una pagina che è stata richiesta Permetto la personalizzazione di alcuni utenti tramite CSS.come gestire la sicurezza con css esterno utente aggiunto (come myspace)
Sono felice di farlo, ma sto cercando di capire come renderlo sicuro. Non ci sono molti fogli di stile che verranno applicati alla pagina, ma inizialmente avevo pensato che se avessi controllato che la pagina fosse un'estensione css, sarei al sicuro.
Tuttavia, la ricerca che ho fatto mostra che xss è facile da fare attraverso i CSS. Ma non sono stato in grado di trovare alcuna risorsa su come consentire che il css esterno generato dall'utente venga incluso in modo sicuro.
Qualcuno ha suggerimenti o risorse per questo?
MySpace riesce a farlo, insieme ad alcuni altri siti, ma non riesco a vedere come garantire che questo sia sicuro.
Non ho dati utente "sicuri" nella pagina in cui si trova il css esterno. Ma ottengo alcune variabili per una ricerca.
dati aggiuntivi ---------------- dopo la risposta di sliky ----------------------
Non ho intenzione di abilitare ogni utente ad aggiungere un css esterno. Tuttavia, la variabile css può essere impostata da utenti qualificati speciali e, una volta che tale variabile è disponibile, in pratica chiunque può impostarla come preferisce. L'unico metodo per ottenere quella variabile in uso è quello di diffondere l'URL, quindi forse sono troppo preoccupato per la sicurezza, ma ne dubito.
Posso impostarlo in modo tale che la pagina non sia indicizzata con un foglio di stile esterno, ma sono ancora preoccupato di come mantenere la sicurezza per l'utente finale.
vorrei avere un link sul mio sito dove sarebbe http://mysite.com/page?useracct=12343&extcss=http://location/of/css.css
I set-up della account_utente, in modo che solo in cui gli utenti che consentono di abilitare le diverse css hanno collegamenti creati per le loro pagine. Sul mio sito, vorrei collegarmi a quell'account utente con la pagina css.
Così qualcuno non può semplicemente venire avanti e dire http://mysite.com/page?extcss=http://new/dangerous/css.css
Tuttavia, hanno potuto creare il link http://mysite.com/page?useracct=12343&extcss=http://new/dangerous/css.css L'unico modo che qualcuno potrebbe arrivare a quella pagina sarebbe se quella persona che ha creato il css pericoloso inoltrato quel collegamento.
Immagino che se ho cancellato e salato l'extcss, potrebbe essere più sicuro. Forse è il modo migliore per andare?
risposta molto informativa Aiden, e grazie per il collegamento sul parser css. Non penso che l'utente abbia caricato xml + immagini sia ciò che sta veramente cercando. Solo cercando di ottenere alcuni semplici stili applicati, e per il posizionamento, includo sempre il mio foglio di stile dopo, in modo che gestisca tutti i problemi di floating/z-index, ecc. Poichè tutto il posizionamento degli elementi è impostato postare le cose dell'utente. Sono soprattutto alcune immagini di ridimensionamento, colori e sfondo che possono essere regolati. Con "questo potrebbe essere più difficile di quello che sembra" e in grassetto "Good Luck" stai suggerendo che forse non dovrei farlo? – pedalpete
Non proprio, ricorda che cose come le cose importanti e altre oscure possono morderti nel culo se permetti agli utenti di caricare css (o qualsiasi altro contenuto). Rendilo quasi matematico ... calcola le permutazioni di tutte le sintassi disponibili che vuoi bloccare e verifica che funzioni. Dipende da quanto sia importante sanificare l'input ... se si tratta di un piccolo sito per gli amici, puoi rilassarti un po ':) Vai a farlo dico! –