Sasa Posted December 14, 2009 Report Share Posted December 14, 2009 Sveiki, Taisu tā ka ja nospiež uz linku parādās javascript confirm logs, ja tajā lietotājs nospiež OK tad viņu nosūta pēc adreses apmēram kaut kur šādi: index ?id=1&action=delete tad pēc tā kas ir URL parametros saprotu kas darāms, ierakstu ar id 1 jādzēš. Bet ja lietotājs adreses laukā ievada kaut ko tādu pats, tad viss nostrādās bez nekāda confirm loga. Kā vajadzētu pārbaudīt uz kaut ko tādu? Quote Link to comment Share on other sites More sharing options...
false Posted December 14, 2009 Report Share Posted December 14, 2009 (edited) Salīdzinot id. ķipa if($_SESSION['id'] == $_GET['id']){ Edited December 14, 2009 by false Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted December 14, 2009 Report Share Posted December 14, 2009 false: pasaki kā tas palīdzēs...domāju, ka nekā... Ja vēlies, lai lietotājs jebkurā gadījumā (ar ieslēgtu/izslēgtu javascript) saņem logu OK vai Cancel, tad vari pievienot kaut vai papildus GET atribūtu ar javascript palīdzību, lai index.php?id=1&action=delete&confirm=1 automātiski dzēš ierakstu, bet index.php?id=1&action=delete ved uz lapu, kur prasa nospiest OK ar HTML palīdzību un tikai tad izdzēš ierakstu. Ja nepareizi sapratu un ņemot par piemēru manu variantu lietotājs ievada index.php?id=1&action=delete&confirm=1 un TAD vēlies lai arī nevar izdzēst, tad tas būs grūtāk. Es pat īsti uz sitiena nezinu kā to nodrošināt, bet, droši vien, ja nospiests ir OK, tad ar AJAX palīdzību uzsetotu kaut kādu sesijas mainīgo un kad mani redirektētu uz index.php?id=1&action=delete, tad es skripts pārbaudītu vai ir šis sesijas mainīgas, ja ir, tad dzēšam, ja nē, tad liekam lietotāju izvēles priekšā, tāpak kā iepriekš. Quote Link to comment Share on other sites More sharing options...
Val Posted December 14, 2009 Report Share Posted December 14, 2009 (edited) Ko nozīmē "nebojā"? Doma skaidra, bet uzraksti precīzāk, ko lietotājs drīkst/nedrīkst darīt. Edited December 14, 2009 by Val Quote Link to comment Share on other sites More sharing options...
ohmygod Posted December 14, 2009 Report Share Posted December 14, 2009 Da lab, lai arī ko darītu JS pusē, visu var noviltot. Vienkārši vajag pārbaudīt vai lietotājam ir tiesības veikt konkrēto darbību un basta. Ja ir - nu tad lai dzēž visu ar sevi saistīto. Quote Link to comment Share on other sites More sharing options...
Sasa Posted December 15, 2009 Author Report Share Posted December 15, 2009 Ko nozīmē "nebojā"? users aiz savas nezināšanas/nesaprašanas var meģināt mainīt URL parametrus (daudzi jau tā parasti nemēdz darīt). Gribu, lai tikai, ļauj izpildīt darbību, ja ir nospiests link/poga. Bet varbūt tomēr neispringt uz ko tāda taisīšanu. Quote Link to comment Share on other sites More sharing options...
briedis Posted December 15, 2009 Report Share Posted December 15, 2009 users aiz savas nezināšanas/nesaprašanas var meģināt mainīt URL parametrus (daudzi jau tā parasti nemēdz darīt). Gribu, lai tikai, ļauj izpildīt darbību, ja ir nospiests link/poga. Bet varbūt tomēr neispringt uz ko tāda taisīšanu. Pareizā pieeja būtu vienkārši neļaut lietotājam veikt darbības, kuras viņš nedrīkst veikt, vai - ļaut veikt tikai to ko drīkst un tad nebūs jāsatraucas par pašrocīgu url kvērija bojāšanu. Cīnies ar problēmas sakni. Quote Link to comment Share on other sites More sharing options...
Val Posted December 15, 2009 Report Share Posted December 15, 2009 var meģināt mainīt URL parametrustādā gadījumā urlī pieliec kautkāda veida hash, kuru lietotājs nevarēs uzminēt un kas atkarīgs no padotā id. Mainot id, hash vairs nebūs derīgs. Pie attiecīgās darbības veikšanas pārbaudi, vai urlī padotais sakrīt ar vajadzīgo. Bet kam gan tas ir vajadzīgs... Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted December 15, 2009 Report Share Posted December 15, 2009 Dzēšanas lietas vispār neesot labais stils padot caur GET, bet tas nu tā - tā ir nedaudz novecojusi prasība (nevis tāpēc, ka caur GET būtu kļuvis drošāk, bet gan tādēļ, ka arī caur POST un COOKIE ir kļuvis daudz vienkāršāk manipulēt). Klients --- (pieprasa autorizāciju ieraksta dzēšanas darbības autentifikatoru ieraksta_id=x,darbiba=dzest) ---> Serveris Serveris zinot klienta ID atbilstoši aplikācijas loģikai pārbauda, vai lietotājs drīkst veikt darbību dzest ierakstam ar id=x. Ja drīkst, tad izveido autentifikatoru šai dzēšanas darbībai - autentifikatora veidošanas principi un realizācija atkarīga no prasībām pret sistēmu. Piemēram, $auth = "darbiba,x,$termins" un $kontrolsumma = HMAC($auth,$servera_slepena_atslega); Klients <--- (nosūta klientam pret manipulācijām aizsargātu - $auth, $kontrolsumma - autentifikatoru ar jautājumu, vai veikt pieprasīto darbību) --- Serveris Klients --- nosūta serverim $auth,$kontrolsumma,$lemums(darīt/nedarīt) ---> Serveris Serveris pārbauda, vai šāds autentifikators $auth vispār ir reģistrēts, vai nav pārsniegts $termins un vai ir pareiza atsūtītā $kontrolsumma, tad izpilda/neizpilda sākotnēji pieprasīto darbību. Quote Link to comment Share on other sites More sharing options...
Klez Posted December 15, 2009 Report Share Posted December 15, 2009 (edited) tā tas notiek ibankā :D bet jaa, šāda sistēma darbotos ļoti labi un tur veel var pielikt klāt, ja atsūta nepareizu kontrolsummu, tad šo gadījumu piefiksē, un ja lietotājam uz kaut kādādm darbībām ir vairāk par x "čakarēšanas" gadījumiem, tad vinju sāk ierobežot .. :) Edited December 15, 2009 by Klez Quote Link to comment Share on other sites More sharing options...
cipcaps Posted December 15, 2009 Report Share Posted December 15, 2009 users aiz savas nezināšanas/nesaprašanas var meģināt mainīt URL parametrus (daudzi jau tā parasti nemēdz darīt). Gribu, lai tikai, ļauj izpildīt darbību, ja ir nospiests link/poga. Bet varbūt tomēr neispringt uz ko tāda taisīšanu. Tam nav jēgas, nu lai dzēs, neviens viņam neliek mainīt URL parametrus, ja mainīji, pats vainīgs. Quote Link to comment Share on other sites More sharing options...
Sasa Posted December 15, 2009 Author Report Share Posted December 15, 2009 laikam jau kaut kam tādam jābūt interneta bankās, bet tākā es neveidoju neko tādu, tad samierināšos ar to kas ir. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted December 15, 2009 Report Share Posted December 15, 2009 Bet tas tak nav nekas pārmērīgi sarežģīts! Nu ne vairāk par pārdesmit trāpīgām koda rindiņām! :) Tas kas gan ir obligāti jāierobežo ir CSRF iespēja. Iedomājies, ka lietotājs ir iegājis tavā lapā un paralēli atver lapeli, kurā kāds gudrinieks ielicis šādu "bildi" (vai pat veselas 100) <img src="http://tavalapa/index.php?action=delete&id=1"/> Quote Link to comment Share on other sites More sharing options...
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.