Jump to content
php.lv forumi

Pārbaudīt vai lietotājs nebojā lapu mainot URL parametrus.


Sasa

Recommended Posts

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?

Link to comment
Share on other sites

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š.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

var meģināt mainīt URL parametrus
tā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...
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 by Klez
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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"/>

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
Reply to this topic...

×   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...