[Django] HTML-Code in Textareas wird nicht interpretiert

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Sonntag 1. Juni 2008, 18:28

Hallo zusammen,

ich bin relativ neuer Python- und Djangonutzer und jetzt auch nur durch mein Studium darauf gestoßen. Ich habe mir jetzt innerhalb weniger Tage ein CMS zusammen gebastelt, was bis auf das Abfangen möglicher Fehler auch soweit funktioniert. Nun habe ich aber doch einen Mangel festgestellt, der mich beunruhigt.

Wenn ich in einem Textfeld im Adminbereich HTML-Code anwende wird dieser auf der Seite leider nicht interpretiert, sondern wieder ausgegeben. Höchstwahrscheinlich ist das in Djano standardmäßig so. Aber gibt es auch eine Möglichkeit dies zu umgehen!?!?

Kann man das vielleicht irgendwo in den views definieren??

Entschuldigt meine Unwissenheit, aber bin wie gesagt erst kurz dabei.
Ansich finde ich das System und Python echt super möchte mich auch gerne in meinem Studienabschlussprojekt damit beschäftigen :)

Wäre super wenn mir da jemand helfen könnte!!!
Vielen Dank!!

Greetz
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 1. Juni 2008, 18:53

Hallo ferix, willkommen im Forum,

Es ist schon richtig, dass im Django-Admin sowas nicht möglich ist. Da reicht dann ein ``* { display: none; }`` mittels CSS und dann kannst du den Admin gar nicht mehr sehen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Sonntag 1. Juni 2008, 18:59

Hallo,

was meinst du damit, dass man den Admin nicht mehr sehen kann!?
Mit diesem CSS Befehlt wird doch alles auf display:none gestellt.

Verstehe jetzt nicht so ganz wie mir das helfen soll, dass ich in Textfeldern mit HTML-Code arbeiten kann!?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 1. Juni 2008, 19:12

ferix hat geschrieben:Verstehe jetzt nicht so ganz wie mir das helfen soll, dass ich in Textfeldern mit HTML-Code arbeiten kann!?
Du kannst doch in den Feldern HTML eintippen. Nur wird der in der Anzeige vom Admin zu recht autoescaped, damit man eben keine XSS-Probleme im Admin hat.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sonntag 1. Juni 2008, 19:17

@ferix: Was du suchst ist wahrscheinlich "mark_safe", schau mal hier:
http://www.djangoproject.com/documentat ... o-escaping

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Sonntag 1. Juni 2008, 19:30

Leider kann ich dem nicht so ganz folgen :(

Dass hier auch keine Missverständnisse auftreten.
Ich möchte NICHT, dass der im Admin-Textfeld eingetragene HTML-CODE in diesem FELD selbst interpretiert wird.

Er soll auf der öffentlichen Website korrekt interpretiert werden.
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Sonntag 1. Juni 2008, 19:40

Oki ich habs:

{% autoescape off %} war das Stichwort ;)

Ihr denkt jetzt vielleicht wie blöde, aber wie gesagt bin absoluter Neuling und mit den auftretenden Fehlern und deren Beseitigung noch nicht so vertraut.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 1. Juni 2008, 19:43

Das ist eine schlechte Idee, besser wäre es den Safe-Filter zu verwenden.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
ferix
User
Beiträge: 128
Registriert: Sonntag 1. Juni 2008, 18:21

Sonntag 1. Juni 2008, 19:46

Und wieso ist das schlecht?
Ich habe das doch nur um den Content gemacht, der auszugeben ist.

Wie verwende ich den Safe-Filter?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 1. Juni 2008, 20:16

ferix hat geschrieben:Und wieso ist das schlecht?
Weil es autoescaping komplett ausschaltet und dir womöglich XSS-Lücken öffnet.
ferix hat geschrieben:Wie verwende ich den Safe-Filter?
So wie in der Django-Dokumentation beschrieben. Also wie jeden Filter.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten