diff --git a/changedetectionio/templates/_helpers.jinja b/changedetectionio/templates/_helpers.html
similarity index 100%
rename from changedetectionio/templates/_helpers.jinja
rename to changedetectionio/templates/_helpers.html
diff --git a/changedetectionio/templates/diff.html b/changedetectionio/templates/diff.html
index 0197bfc98..c82a559e6 100644
--- a/changedetectionio/templates/diff.html
+++ b/changedetectionio/templates/diff.html
@@ -1,5 +1,5 @@
{% extends 'base.html' %}
-{% from '_helpers.jinja' import render_field, render_checkbox_field, render_button %}
+{% from '_helpers.html' import render_field, render_checkbox_field, render_button %}
{% block content %}
diff --git a/changedetectionio/templates/settings.html b/changedetectionio/templates/settings.html
index 16030a2f1..78387a48c 100644
--- a/changedetectionio/templates/settings.html
+++ b/changedetectionio/templates/settings.html
@@ -1,8 +1,8 @@
{% extends 'base.html' %}
{% block content %}
-{% from '_helpers.jinja' import render_field, render_checkbox_field, render_button %}
-{% from '_common_fields.jinja' import render_common_settings_form %}
+{% from '_helpers.html' import render_field, render_checkbox_field, render_button %}
+{% from '_common_fields.html' import render_common_settings_form %}
diff --git a/changedetectionio/tests/test_security.py b/changedetectionio/tests/test_security.py
index 406a54012..c56c84492 100644
--- a/changedetectionio/tests/test_security.py
+++ b/changedetectionio/tests/test_security.py
@@ -2,9 +2,11 @@ from flask import url_for
from .util import set_original_response, set_modified_response, live_server_setup, wait_for_all_checks
import time
+def test_setup(client, live_server):
+ live_server_setup(live_server)
def test_bad_access(client, live_server):
- live_server_setup(live_server)
+ #live_server_setup(live_server)
res = client.post(
url_for("import_page"),
data={"urls": 'https://localhost'},
@@ -63,4 +65,25 @@ def test_bad_access(client, live_server):
wait_for_all_checks(client)
res = client.get(url_for("index"))
- assert b'file:// type access is denied for security reasons.' in res.data
\ No newline at end of file
+ assert b'file:// type access is denied for security reasons.' in res.data
+
+def test_xss(client, live_server):
+ #live_server_setup(live_server)
+ from changedetectionio.notification import (
+ default_notification_format
+ )
+ # the template helpers were named .jinja which meant they were not having jinja2 autoescape enabled.
+ res = client.post(
+ url_for("settings_page"),
+ data={"application-notification_urls": '">

',
+ "application-notification_title": '">

',
+ "application-notification_body": '">

',
+ "application-notification_format": default_notification_format,
+ "requests-time_between_check-minutes": 180,
+ 'application-fetch_backend': "html_requests"},
+ follow_redirects=True
+ )
+
+ assert b"
