Django HttpResponseRedirect 是否遭受 xss 攻击?
does Django HttpResponseRedirect suffer from xss attack?
如题,因为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)。
综上所述,对于 Django 中的 XSS,您必须使用 {{ something | safe }}
模板标记,并将带有恶意 XSS 负载的字符串加载到 HTML 模板。
如题,因为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)。
综上所述,对于 Django 中的 XSS,您必须使用 {{ something | safe }}
模板标记,并将带有恶意 XSS 负载的字符串加载到 HTML 模板。