作為標題,由于 urlpatterns 設定了數字引數,我傾向于認為 HttpResponseRedirect 不會受到 xss 攻擊,對嗎?
如果不是,HttpResponseRedirect 是如何受苦的?
網址.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,)))
uj5u.com熱心網友回復:
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 模板中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/417742.html
標籤:
