Django HttpResponseRedirect是否受到xss攻击



作为标题,由于url模式正在设置数字参数,我倾向于认为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'),
]

视图.py

def detail(request, question_id):
return HttpResponseRedirect(reverse('hello:results', args=(question.id,)))

Django默认情况下通常是安全的框架,这意味着它不应该受到最常见的攻击(如XSS、SQLi等(。

只要你没有使用mark_safe()方法(引用(或safe模板标记(<span id="search-query" >You searched for {{ query | safe }}</span>(,你就应该不会受到XSS攻击等,因为Django会自动逃离危险的字符串。

在您的特殊情况下,XSS是不可能的,因为您的URL只接受整数(据我所知,它在浏览器中只显示问题的ID(。

总之,对于Django中的XSS,您必须使用{{ something | safe }}模板标记,并将带有恶意XSS负载的字符串加载到HTML模板中。

最新更新