In meiner codeigniter Konfig habe ich $config['global_xss_filtering'] = TRUE;
. In meinem Admin-Bereich habe ich einen CSS-Editor, der den Frontend-Inhalt generiert.Codeigniter global_xss_filtering
Alles, was getippt und in den Editor gestellt wird, funktioniert gut, Bilder werden schön angezeigt, HTML funktioniert. Alle außer Blitz. Immer wenn ich in den HTML-Modus umschalte und ein Youtube-Codestück einfüge, wird es mit Escapezeichen versehen und der Code wird auf der Startseite angezeigt, anstatt einen Youtube-Film anzuzeigen.
Wenn ich $config['global_xss_filtering'] = FALSE;
setze, wird der Youtube-Code wie er sollte übergeben. Dies liegt daran, dass "Objekt", "Einbetten" usw. von CI als "ungezogen" gekennzeichnet und daher ausgeblendet werden.
Wie kann ich die XSS-Filterung für diese eine Controller-Methode umgehen?
Sie geben einem Angreifer eine einfache Route zum Einbetten von XSS. Alles, was er tun muss, ist HTML-kodieren den Angriff. Es wird alle XSS-Filter umgehen und dann von html_entity_decode zurück in den Angriff konvertiert werden. –
Wie sonst sollte ich Menschen erlauben, HTML in einem Textfeld zu verwenden? Ich führe es durch HTMLPurifier, ist das nicht genug? – zechdc
Dies entfernt auch die Inline-Stil-Attribute, wenn ich eine verwenden –