Страдает ли 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-шаблон.

Вернуться на верх