Kun tillad adgang hvis kommer fra Ajax request

Tags:    ajax mysql php

Jeg har fået lavet en Ajax get request, som skal opdatere et resultat i en database.

Men som det ser ud nu, så kan man selv manipulere med resultatet, ved at ændre i URL'et til Ajax requesten.'
Derfor ville jeg gerne høre, hvordan man kun kan tillade adgang til en side, hvis det kommer fra en Ajax request?

Mit nuværende stykke kode ser således ud:
Fold kodeboks ind/udPHP kode 


Har at tilføje flg. omkring den ovenstående kode, men uden held:
Fold kodeboks ind/udPHP kode 




9 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Men som det ser ud nu, så kan man selv manipulere med resultatet, ved at ændre i URL'et til Ajax requesten.'


det er vel et fedt om man ændre det i urlen eller i dit ajax kald?

hvis folk vil sende andet end det de skal, kan de gøre det. (hvis de ved lidt om hjemmesider og ajax)
man kan bare rette dit javascript fra siden, lokalt og sende hvad man vil.



Indlæg senest redigeret d. 14.06.2012 15:44 af Bruger #3427
HTTP_X_REQUESTED_WITH er ikke noget der som standard er med i XHR (XMLHttpRequest). En del JS frameworks sætter dog selv denne header, som du kan benytte:

http://stackoverflow.com/questions/1846675/x-requested-with-header-not-set-in-jquery-ajaxform-plugin

Du kan dog ikke spærre for adgangen for brugere. Da XHR også er noget der udføres af brugeren.



Jeg skal ikke gøre mig klog.

Men kunne man ikke sende det med en post?



Tak for svarene.

Jeg valgte at gemme det i en cookie i stedet, så mit problem er løst alligevel. :)



En cookie kan også sagtens hackes, jeg henviser derfor til Daniel's løsning som den mest sikre :)



En cookie kan også sagtens hackes, jeg henviser derfor til Daniel's løsning som den mest sikre :)


kan en post også ;)



En cookie kan også sagtens hackes, jeg henviser derfor til Daniel's løsning som den mest sikre :)


kan en post også ;)


Ja alt kan hackes, hvis bare man har tiden og lysten :)



Jeg skal ikke gøre mig klog.

Men kunne man ikke sende det med en post?

Når du skriver post, mener du så via form? :) Ville bare bide mig sikker i, at jeg ikke har valgt noget, som kunne laves meget nemmere og mere sikkert.



opret en række nøgler i en tabel og send dem som parametre i dit ajax, er nøglen brugt, så kan man formode at der er tale om fusk.

/J



t