diff --git a/openerp/tests/test_html_sanitize.py b/openerp/tests/test_html_sanitize.py index 906c78d1dcf..3efb4a43ca5 100755 --- a/openerp/tests/test_html_sanitize.py +++ b/openerp/tests/test_html_sanitize.py @@ -17,6 +17,7 @@ test11
google +test link """ class TestSanitizer(unittest.TestCase): diff --git a/openerp/tools/html_sanitize.py b/openerp/tools/html_sanitize.py index 2010459ca12..74d83a2c453 100644 --- a/openerp/tools/html_sanitize.py +++ b/openerp/tools/html_sanitize.py @@ -1,5 +1,6 @@ from pyquery import PyQuery as pq +import re def html_sanitize(x): root = pq("") @@ -11,8 +12,12 @@ def html_sanitize(x): to_remove = set(["script", "head", "meta", "title", "link", "img"]) to_unwrap = set(["html", "body"]) +javascript_regex = re.compile("""^\s*javascript\s*\:.*$""") def handle_a(el, new): - new.set("href", el.get("href", "#")) + href = el.get("href", "#") + if javascript_regex.search(href): + href = "#" + new.set("href", href) special = { "a": handle_a, }test12