Thread View: pl.comp.lang.python
6 messages
6 total messages
Started by Marek
Mon, 05 Jul 2010 18:59
[django] Wpuszczanie whitelistowane tagi HTML w inpucie
Author: Marek
Date: Mon, 05 Jul 2010 18:59
Date: Mon, 05 Jul 2010 18:59
15 lines
1274 bytes
1274 bytes
Witam, Z tego co wiem Django ma automatyczny mechanizm uniemożliwiający (utrudniający?) ataki typu XSS. Czy jednak jest mozliwość wybiórczego whitelistowania tagów np. HTML'a, które chcałbym aby były były interpretowane przez przeglądarke. Dla przykładu chciałbym aby tagi z inputu który poda user, typu <b></b>, <i></i> nie były escape'owane a tekst był rzeczywiście pogrubiony, kursywą etc. Ale żeby kwiatki typu <script> alert(1) </script> były wyświetlane jako: <script> alert(1) </script> (czyli już normalne autoescape) pozdrawiam Marek
Re: Wpuszczanie whitelistowane tagi HTML w inpucie
Author: Sławek Tuleja
Date: Mon, 05 Jul 2010 20:53
Date: Mon, 05 Jul 2010 20:53
51 lines
3063 bytes
3063 bytes
On Jul 5, 8:59 pm, Marek <ma...@octogan.usun.net> wrote:
> Witam,
>
> Z tego co wiem Django ma automatyczny mechanizm uniemożliwiający
> (utrudniający?) ataki typu XSS. Czy jednak jest mozliwość wybiórczego
> whitelistowania tagów np. HTML'a, które chcałbym aby były były
> interpretowane przez przeglądarke. Dla przykładu chciałbym aby tagi z
> inputu który poda user, typu <b></b>, <i></i> nie były escape'owane a
> tekst był rzeczywiście pogrubiony, kursywą etc. Ale żeby kwiatki typu
> <script> alert(1) </script>
> były wyświetlane jako: <script> alert(1) </script> (czyli już
> normalne autoescape)
>
> pozdrawiam
>
> Marek
czesc Marek
faktycznie nie ma takiego filtru w django
- albo jest: usuwanie wszystkich tagow (striptags)
- alob usuwanie wybranych tagow (removedtags)
sprobuj sobie napisac taki filtr biorac pod uwage kod dla tych wyzej
wymienionych funkcji (ewentualnie mozna poszukac w internecie
rozwiazan (ja znalazlem takie: http://djangosnippets.org/snippets/1655/):
def removetags(value, tags):
"""Removes a space separated list of [X]HTML tags from the
output."""
tags = [re.escape(tag) for tag in tags.split()]
tags_re = u'(%s)' % u'|'.join(tags)
starttag_re = re.compile(ur'<%s(/?>|(\s+[^>]*>))' % tags_re, re.U)
endtag_re = re.compile(u'</%s>' % tags_re)
value = starttag_re.sub(u'', value)
value = endtag_re.sub(u'', value)
return value
removetags.is_safe = True
removetags = stringfilter(removetags)
def striptags(value):
"""Strips all [X]HTML tags."""
from django.utils.html import strip_tags
return strip_tags(value)
striptags.is_safe = True
striptags = stringfilter(striptags)
def strip_tags(value):
"""Returns the given HTML with all tags stripped."""
return re.sub(r'<[^>]*?>', '', force_unicode(value))
strip_tags = allow_lazy(strip_tags)
Re: Wpuszczanie whitelistowane tagi HTML w inpucie
Author: Sławek Tuleja
Date: Mon, 05 Jul 2010 20:58
Date: Mon, 05 Jul 2010 20:58
5 lines
1483 bytes
1483 bytes
poprzednio blednie podalem nazwe funkcji: zamiast: removedtags ma byc: removetags pozdrawiam
Re: [django] Wpuszczanie whitelistowane tagi HTML w inpucie
Author: Adam Przybyla
Date: Mon, 05 Jul 2010 20:58
Date: Mon, 05 Jul 2010 20:58
15 lines
1614 bytes
1614 bytes
Marek <marek@octogan.usun.net> wrote: > Witam, > > Z tego co wiem Django ma automatyczny mechanizm uniemożliwiający > (utrudniający?) ataki typu XSS. Czy jednak jest mozliwość wybiórczego > whitelistowania tagów np. HTML'a, które chcałbym aby były były > interpretowane przez przeglądarke. Dla przykładu chciałbym aby tagi z > inputu który poda user, typu <b></b>, <i></i> nie były escape'owane a > tekst był rzeczywiście pogrubiony, kursywą etc. Ale żeby kwiatki typu > <script> alert(1) </script> > były wyświetlane jako: <script> alert(1) </script> (czyli już > normalne autoescape) ... tworcy zalecaja poprawki frameworka;-) Poszukaj odpowiedniego kawalka, jest dosc dobrze udokumentowany;-) Z powazaniem Adam Przybyla
Re: [django] Wpuszczanie whitelistowane tagi HTML w inpucie
Author: Marek
Date: Mon, 05 Jul 2010 22:09
Date: Mon, 05 Jul 2010 22:09
8 lines
1006 bytes
1006 bytes
Dnia Mon, 05 Jul 2010 20:58:35 +0000, Adam Przybyla napisał(a): > ... tworcy zalecaja poprawki frameworka;-) Poszukaj odpowiedniego > kawalka, > jest dosc dobrze udokumentowany;-) tzn. sugerujesz dopisanie takiej funkcjonalności w samym Django? :) Marek
Re: [django] Wpuszczanie whitelistowane tagi HTML w inpucie
Author: Adam Przybyla
Date: Wed, 07 Jul 2010 05:18
Date: Wed, 07 Jul 2010 05:18
10 lines
1338 bytes
1338 bytes
Marek <marek@octogan.usun.net> wrote: > Dnia Mon, 05 Jul 2010 20:58:35 +0000, Adam Przybyla napisał(a): >> ... tworcy zalecaja poprawki frameworka;-) Poszukaj odpowiedniego >> kawalka, >> jest dosc dobrze udokumentowany;-) > > tzn. sugerujesz dopisanie takiej funkcjonalności w samym Django? :) .. tak, dosc latwo daje sie nadpsac pewne funkcje na podstawie tego, co jest we frameworku. Z powazaniem Adam Przybyla
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads