點選劫持保護
點選劫持是一種惡意技術,它欺騙網路使用者點選與使用者認為他們點選的內容不同的內容。學到更多
要啟用 clickjacking 保護,請將 XFrameOptionsMiddleware
新增到你的中介軟體類。如果你沒有刪除它,它應該已經存在。
# settings.py
MIDDLEWARE_CLASSES = [
...
'django.middleware.clickjacking.XFrameOptionsMiddleware',
...
]
此中介軟體將“X-Frame-Options”標題設定為你的所有響應,除非明確豁免或已設定(如果已在響應中設定,則不會覆蓋)。預設情況下,它設定為 SAMEORIGIN
。要更改此設定,請使用 X_FRAME_OPTIONS
設定:
X_FRAME_OPTIONS = 'DENY'
你可以基於每個檢視覆蓋預設行為。
from django.utils.decorators import method_decorator
from django.views.decorators.clickjacking import (
xframe_options_exempt, xframe_options_deny, xframe_options_sameorigin,
)
xframe_options_exempt_m = method_decorator(xframe_options_exempt, name='dispatch')
@xframe_options_sameorigin
def my_view(request, *args, **kwargs):
"""Forces 'X-Frame-Options: SAMEORIGIN'."""
return HttpResponse(...)
@method_decorator(xframe_options_deny, name='dispatch')
class MyView(View):
"""Forces 'X-Frame-Options: DENY'."""
@xframe_options_exempt_m
class MyView(View):
"""Does not set 'X-Frame-Options' header when passing through the
XFrameOptionsMiddleware.
"""