Jump to content
php.lv forumi
  • 0

Atļauja


keiG

Question

Īsti nezinu, kura būtu atbilstošākā foruma sadaļa.

Tad nu tā indexā ir

 

$("#list" + id).load("load.php?id="+ id)

 

un kā lai aizsargā load.php, lai viņu nevarētu atvērt manuāli ierakstot adreses logā?

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Tas nav īsti iespējams. Vari mēģināt apgrūtināt šo procesu ar kādu tokenu.

 

var token = '<?=generateToken();?>';
$("#list" + id).load("load.php?id="+ id + "&token=" + token)

 

Teiksim, šis tokens tiek ielikts sesijā un uzreiz kā tiek izsaukts tas ajax iekš load.php dzēšam šo tokenu no sesijas.

Ja lietotājs mēģina piekļut load.php pa tiešo, skatamies, vai ir padots iepriekš uzstādīts tokens. Ja nav - sūtam nafig.

 

Ja kāds labi gribēs, tāpat apies šo...

Link to comment
Share on other sites

  • 0

Palaid vienreiz, uzzini simbolu skaitu tokenim un uzžmiedz manuāli arī to :///

Bet jā, teiksim iedod sessiju, kur žetons ir teiksim md5 vai kas tāds no sessijas, un izčeko abus piemēram, gan tokenu, gan salīzini vai tokens ir vienāds ar sessiju no md5 vai ko tu tur dari. Cerams skaidri +/- izteicos, jeb briedis varbūt tā bija domājis.

 

/Vakars ir/

Link to comment
Share on other sites

  • 0

O, sand2s domā loģiski :D ..bet nu tas arī neatrisina pilnībā šo problēmu, jo headerus var padot kādus vien cilvēks vēlas, izmantojot kaut vai to pašu cURL...

 

Funkcija, kas pārbauda vai ir ajax izsaukums:

 

function isAjax(){
	return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
}

Link to comment
Share on other sites

  • 0

Jocīgi vai nē, bet man šķiet, ka šādi var kaut kas sanāk.

 

Iedod sessijā randu, uzģenerē to md5 un dod iekšā get`am kā token. faila pusē pārbauda vai sessija md5() funkcijā ir vienāda ar get`otu tokenu?

Edited by Kemito
Link to comment
Share on other sites

  • 0

Iedod sessijā randu, uzģenerē to md5 un dod iekšā get`am kā token. faila pusē pārbauda vai sessija md5() funkcijā ir vienāda ar get`otu tokenu.

 

Es izslēdzu JS, paskatos source un paņemu to uzģenerēto tokenu un bliežu pa taisno urlī :)

Link to comment
Share on other sites

  • 0

Šim pasākumam būs daudz lietotāju un padodot mainīgo load.php?id=1 cilvēki varēs apiet maksas informāciju. Laikam būs vien bez js jātaisa. Gribējās maksimāli samazināt mysql noslogojumu, lai klientam ielādējās tikai tas ko viņš noklikšķina. Varbūt ir kādas citas idejas kā to var maksimāli droši izveidot?

Link to comment
Share on other sites

  • 0

Nu kamoon? Ja jau lietotājs maksā, tad lietotājam ir kaut kāds konts ar kuru viņš autorizējas. Pārbaudi load.php failā vai attiecīgais lietotājs ir samaksājis un tikai tad dod informāciju. Aizsardzība pret apiešanu tieši tāda pati, ja tas arī nebūtu ajax peiprasījums.

Link to comment
Share on other sites

  • 0

Briedis - Tad tu saki, ka vari paņemt servera puses mainīgā vērtību, kas ir randoms, tikai izslēdzot JS ? ja tā, tad mazliet abi mēs kaut ko ne tā viens no otra sapratām vai kā savādāk - es švaki/jocīgi izskaidroju.

 

btw tad tik tiešām, ja lietotājs maksā par to, tad problēmām vispār nevaidzētu būt.

Link to comment
Share on other sites

  • 0

Briedis - Tad tu saki, ka vari paņemt servera puses mainīgā vērtību, kas ir randoms, tikai izslēdzot JS ? ja tā, tad mazliet abi mēs kaut ko ne tā viens no otra sapratām vai kā savādāk - es švaki/jocīgi izskaidroju.

 

Bet kā tu domā padot javascriptam to random vērtību? Viss, kas nonāk līdz pārlūkam ir pārtverams...

Link to comment
Share on other sites

  • 0

briedis - dod jau hašu, nevis randu. No randa uztaisa hašu, sessijā saglabā randu, otrā pusē pārbauda vai get hash ir vienāds ar sessijas randa hashu. Netiek dota vērtība, lai pats ģenerētu, bet ģenerē jau sākuma pusē, tad iedod linkā, sessija ir rands un otrā pusē atliek salīdzināt tikai.

Link to comment
Share on other sites

  • 0

Nafig visu ir tā jāsarežģī? php failam pārbaudam REQUEST_URI, ja lien pa tiešo, tad neļaujam un miers.

 

Abi REQUEST_URI ir vienādi, jo viņu izsauc ar jquery load, kas akseso url no klienta puses pa taisno.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...