---
title: "Cosaint clickjacking"
version: 5.2
locale: ga
source: https://docs.djangoproject.com/ga/5.2/ref/clickjacking/
canonical: https://djangodocs.dev/ga/5.2/ref/clickjacking/
---
# Cosaint clickjacking

Soláthraíonn na meánearraí clickjacking agus na maisitheoirí cosaint éasca le húsáid i gcoinne [clickjacking](https://en.wikipedia.org/wiki/Clickjacking). Tarlaíonn an cineál seo ionsaithe nuair a chuireann suíomh mailíseach cleas ar úsáideoir chun cliceáil ar ghné folaithe de shuíomh eile atá luchtaithe acu i bhfráma nó iframe i bhfolach.

## Sampla de clickjacking

Suppose an online store has a page where a logged-in user can click "Buy Now" to
purchase an item. A user has chosen to stay logged into the store all the time
for convenience. An attacker site might create an "I Like Ponies" button on one
of their own pages, and load the store's page in a transparent iframe such that
the "Buy Now" button is invisibly overlaid on the "I Like Ponies" button. If the
user visits the attacker's site, clicking "I Like Ponies" will cause an
inadvertent click on the "Buy Now" button and an unknowing purchase of the item.

## Clickjacking a chosc

Tugann brabhsálaí nua-aimseartha onóir ar cheanntásc HTTP [X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) a thugann le fios an bhfuil cead ag acmhainn luchtú laistigh de fhráma nó iframe nó nach bhfuil. Má tá an ceannteideal sa fhreagra le luach `SAMEORIGIN` ansin ní luchtálfaidh an brabhsálaí an acmhainn i bhfráma ach amháin má tháinig an t-iarratas ón suíomh céanna. Má tá an ceannteideal socraithe go DENY\` ansin cuirfidh an brabhsálaí bac ar an acmhainn ó luchtú i bhfráma is cuma cén suíomh a rinne an iarraidh.

Soláthraíonn Django cúpla bealach chun an ceannteideal seo a áireamh i bhfreagraí ó do shuíomh:

1. Middleware a shocraíonn an ceanntásc i ngach freagra.
2. Sraith maisitheoirí radhairc is féidir a úsáid chun an lár-earraí a shárú nó chun an ceanntásc a shocrú ach le haghaidh tuairimí áirithe.

Ní shocróidh an ceannteideal HTTP `X-Frame-Options` ach ag na maisitheoirí meán-earraí nó amharc mura bhfuil sé i láthair sa fhreagra cheana féin.

## Conas é a úsáid

### Socrú `Roghanna X-Frame` do gach freagra

Chun an luach céanna `X-Frame-Options` a shocrú do gach freagra ar do shuíomh, cuir django.middleware.clickjacking.xframeOptionsMiddleware'\` chuig:setting: MIDDLEWARE:

```
MIDDLEWARE = [
    ...,
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
    ...,
]
```

Tá an láithreán gréasáin seo cumasaithe sa chomhad socruithe a ghineann: djadmin: startproject.

De réir réamhshocraithe, socraíonn an middleware an ceannteideal `X-Frame-Options` go DENY\` do gach HttpResponse\` atá ag imeacht. Más mian leat aon luach eile don cheanntásc seo ina ionad sin, socraigh an socrú: setting: X\_FRAME\_OPTIONS:

```
X_FRAME_OPTIONS = "SAMEORIGIN"
```

Agus an middleware á úsáid agat d'fhéadfadh go mbeadh roinnt tuairimí ann nuair nach dteastaíonn uait\*\* an tacar ceanntásc `X-Frame-Options` ag teastáil uait. Maidir leis na cásanna sin, is féidir leat maisitheoir amharc a úsáid a insíonn don middleware gan an ceannteideal a shocrú:

```
from django.http import HttpResponse
from django.views.decorators.clickjacking import xframe_options_exempt

@xframe_options_exempt
def ok_to_load_in_a_frame(request):
    return HttpResponse("This page is safe to load in a frame on any site.")
```

> **Note**
>
> Más mian leat foirm a chur isteach nó rochtain a fháil ar fhianán seisiúin laistigh de fhráma nó iframe, b'fhéidir go mbeidh ort socruithe: :setting: CSRF\_COOKIE\_SAMESITE nó:setting: SESSION\_COOKIE\_SAMESITE a mhodhnú.

### Socrú `Roghanna Fráma X-` in aghaidh an amharc

Chun an ceanntásc X-Frame-Options\` a shocrú ar bhonn in aghaidh an amharc, soláthraíonn Django na maisiúcháin seo:

```
from django.http import HttpResponse
from django.views.decorators.clickjacking import xframe_options_deny
from django.views.decorators.clickjacking import xframe_options_sameorigin

@xframe_options_deny
def view_one(request):
    return HttpResponse("I won't display in any frame!")

@xframe_options_sameorigin
def view_two(request):
    return HttpResponse("Display in a frame if it's from the same origin as me.")
```

Tabhair faoi deara gur féidir leat na maisitheoirí a úsáid i gcomhar leis an middleware. Sáraíonn úsáid maisitheora an mheán-earraí.

## Teorainneacha

Ní chosnóidh an ceannteideal X-Frame-Options\` ach ar chliceacáil i brabhsálaí nua-aimsearta'.
