Страдает ли Django HttpResponseRedirect от xss-атаки?
В качестве заголовка, поскольку urlpatterns задают числовой параметр, я склонен думать, что HttpResponseRedirect не пострадает от xss атаки, я прав?
Если нет, то как от этого страдает HttpResponseRedirect?
urls.py
from django.urls import path
from hello import views
app_name = 'hello'
urlpatterns = [
path("", views.home, name="home"),
# ex: /hello/5/
path('<int:question_id>/', views.detail, name='detail'),
path('<int:question_id>/results/', views.results, name='results'),
]
views.py
def detail(request, question_id):
return HttpResponseRedirect(reverse('hello:results', args=(question.id,)))
Django в целом является безопасным по умолчанию фреймворком, это означает, что он не должен быть уязвим для наиболее распространенных атак (таких как XSS, SQLi и т.д.).
Пока вы не использовали mark_safe() метод (reference) или safe шаблонный тег (<span id="search-query" >You searched for {{ query | safe }}</span>), вы должны быть в безопасности от XSS атак и т.д., потому что Django автоматически экранирует опасные строки.
В вашем конкретном случае XSS невозможен, поскольку ваш URL принимает только целые числа (и, насколько я понимаю, в браузере отображается только ID вопроса).
Подводя итог, для XSS в Django необходимо использовать тег шаблона {{ something | safe }} и загрузить строку с вредоносной XSS полезной нагрузкой в HTML-шаблон.