From 5fad9ccca43cdfb565b3f80914f998afa7f2fa78 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Mon, 1 Jul 2013 16:01:50 -0400 Subject: [PATCH] Fix LMS-530, reflected XSS Limit the page and chapter numbers to digits, to keep malicious URL components from being inserted onto the page. --- lms/urls.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lms/urls.py b/lms/urls.py index 51c6ba13b7..b131bb8f0b 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -223,24 +223,24 @@ if settings.COURSEWARE_ENABLED: 'courseware.views.course_info', name="info"), url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/syllabus$', 'courseware.views.syllabus', name="syllabus"), # TODO arjun remove when custom tabs in place, see courseware/courses.py - url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/book/(?P[^/]*)/$', + url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/book/(?P\d+)/$', 'staticbook.views.index', name="book"), - url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/book/(?P[^/]*)/(?P[^/]*)$', + url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/book/(?P\d+)/(?P\d+)$', 'staticbook.views.index'), - url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/pdfbook/(?P[^/]*)/$', + url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/pdfbook/(?P\d+)/$', 'staticbook.views.pdf_index', name="pdf_book"), - url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/pdfbook/(?P[^/]*)/(?P[^/]*)$', + url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/pdfbook/(?P\d+)/(?P\d+)$', 'staticbook.views.pdf_index', name="pdf_book"), - url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/pdfbook/(?P[^/]*)/chapter/(?P[^/]*)/$', + url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/pdfbook/(?P\d+)/chapter/(?P\d+)/$', 'staticbook.views.pdf_index', name="pdf_book"), - url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/pdfbook/(?P[^/]*)/chapter/(?P[^/]*)/(?P[^/]*)$', + url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/pdfbook/(?P\d+)/chapter/(?P\d+)/(?P\d+)$', 'staticbook.views.pdf_index', name="pdf_book"), - url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/htmlbook/(?P[^/]*)/$', + url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/htmlbook/(?P\d+)/$', 'staticbook.views.html_index', name="html_book"), - url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/htmlbook/(?P[^/]*)/chapter/(?P[^/]*)/$', + url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/htmlbook/(?P\d+)/chapter/(?P\d+)/$', 'staticbook.views.html_index', name="html_book"), url(r'^courses/(?P[^/]+/[^/]+/[^/]+)/courseware/?$',