From 9ebc6d5ca7c025322cff7bc3cced61028348fdd1 Mon Sep 17 00:00:00 2001 From: Cem Eren Date: Mon, 16 Feb 2015 18:35:30 +0200 Subject: [PATCH 1/2] Fixed issue;sanitizer closing no close tags --- gluon/sanitizer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gluon/sanitizer.py b/gluon/sanitizer.py index 728c4bee..da71d159 100644 --- a/gluon/sanitizer.py +++ b/gluon/sanitizer.py @@ -125,7 +125,7 @@ class XssCleaner(HTMLParser): bt += ' /' bt += '>' self.result += bt - self.open_tags.insert(0, tag) + if tag not in self.requires_no_close: self.open_tags.insert(0, tag) def handle_endtag(self, tag): bracketed = '' % tag From 07607527193c681d369ec3cf0e20a5bb511adf16 Mon Sep 17 00:00:00 2001 From: Cem Eren Date: Thu, 19 Feb 2015 11:29:49 +0200 Subject: [PATCH 2/2] Added test for sanitizer for the issue of closing no-close tags --- gluon/tests/test_html.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gluon/tests/test_html.py b/gluon/tests/test_html.py index 27c7b725..27c46cbe 100644 --- a/gluon/tests/test_html.py +++ b/gluon/tests/test_html.py @@ -308,6 +308,9 @@ class TestBareHelpers(unittest.TestCase): # beware that the comparison is made on the XML repr self.assertEqual(XML('

HelloWorld

', sanitize=True), XML('

HelloWorld

')) + #bug check for the sanitizer for closing no-close tags + self.assertEqual(XML('

Test


Test


', sanitize=True), + XML('

Test


Test


')) def testTAG(self): self.assertEqual(TAG.first(TAG.second('test'), _key=3).xml(),