keiG Posted May 12, 2011 Report Posted May 12, 2011 Ī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ā? Quote
0 briedis Posted May 12, 2011 Report Posted May 12, 2011 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... Quote
0 Kemito Posted May 12, 2011 Report Posted May 12, 2011 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/ Quote
0 sandis_m Posted May 12, 2011 Report Posted May 12, 2011 Tajā load.php var veikt pārbaudi vai ir veikts ajax pieprasījums. Quote
0 codez Posted May 12, 2011 Report Posted May 12, 2011 Vai nu pārbaudi servera pusē header-us - pēc tiem varēja atšķirt ajax request-u. Vai arī taisi ajax requestu ar post mainīgo. šādā gadījumā ierakstot url-u, nevarēs nosūtīt post mainīgo. Quote
0 briedis Posted May 12, 2011 Report Posted May 12, 2011 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'; } Quote
0 Kemito Posted May 12, 2011 Report Posted May 12, 2011 (edited) 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 May 12, 2011 by Kemito Quote
0 briedis Posted May 12, 2011 Report Posted May 12, 2011 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ī :) Quote
0 keiG Posted May 13, 2011 Author Report Posted May 13, 2011 Š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? Quote
0 codez Posted May 13, 2011 Report Posted May 13, 2011 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. Quote
0 Kemito Posted May 13, 2011 Report Posted May 13, 2011 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. Quote
0 briedis Posted May 13, 2011 Report Posted May 13, 2011 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... Quote
0 mad182 Posted May 13, 2011 Report Posted May 13, 2011 To, vai lietotājam ir tiesība skatīties konkrēto saturu ir jāpārbauda servera pusē, un ja viņam ir tiesības to skatīties, tad ir gluži vienalga, kā viņš to adresi izsauc. Quote
0 Kemito Posted May 13, 2011 Report Posted May 13, 2011 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. Quote
0 anonīms Posted May 14, 2011 Report Posted May 14, 2011 (edited) Nafig visu ir tā jāsarežģī? php failam pārbaudam REQUEST_URI, ja lien pa tiešo, tad neļaujam un miers. Edited May 14, 2011 by anonīms Quote
0 keiG Posted May 28, 2011 Author Report Posted May 28, 2011 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. Quote
Question
keiG
Ī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ā?
15 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.