點選劫持保護

點選劫持是一種惡意技術,它欺騙網路使用者點選與使用者認為他們點選的內容不同的內容。學到更多

要啟用 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.
    """