2010-06-15 13 views
7

Come si impedisce l'input dannoso negli editor WYSIWYG come TinyMCE?Domanda di sicurezza TinyMCE: come si prevengono gli input dannosi?

Ho un sistema con utenti che non sono "esperti di tecnologia" (quindi senza WMD) e hanno bisogno di un editor di testo avanzato che pubblichi il suo contenuto in un database.

Sono preoccupato per attacchi di script e codice di input dannoso.

risposta

14

Se desideri solo html sicuro allora si dovrebbe utilizzare il HTML Purifier. Se si desidera proteggere da XSS e bloccare tutto l'html, è necessario utilizzare $var=htmlspcialchars($var,ENT_QUOTES);

+0

+1 per purificatore HTML. Funziona davvero bene e ti consente di personalizzare ciò che desideri e ciò che desideri non a livello di singolo tag o anche singolo attributo – nico

-4
+2

javascript può essere ignorato da un utente malintenzionato, questo non impedirà l'input malevolo. – rook

+1

*** MAI ***

si basano sulla convalida lato client – Iraklis

+3

La convalida lato client è utile e se utilizzata correttamente migliora l'esperienza utente e l'usabilità, ma deve SEMPRE essere accompagnata dalla convalida lato server. Quando sono pigro, inizio sempre con la convalida sul lato server e THEN implementa gli stessi controlli sul client. – Iraklis

0

Non si può impedire che l'input dal lato client. È possibile aggiungere cose per intromettersi (o provare), ma sarà sempre banale presentare il codice dannoso. È necessario disinfettare in PHP.

sempre sempre sempre sfuggire contenuti inseriti dall'utente prima di visualizzarlo (htmlentities sarà solito prendersi cura di questo per voi).

Se si desidera che la funzione HTML sia stata inviata (come si dice che si desidera il WYSIWYG), è necessario effettuare la white-list per disinfettare l'HTML inviato. Quando dico white-list, intendo sia il nome del tag che l'attributo.

Io non sono che la familiarità con CodeIgniter, ma ho trovato this che sembra che può fare quello che vuoi ...

Problemi correlati