Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
jnt
HV Guru

liitunud: 10.05.2005
|
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
LinkyB
HV kasutaja
liitunud: 19.06.2005
|
10.07.2009 15:18:10
|
|
|
http://linkz.pri.ee/id1.php?lk=3
Kõiksugune tabelist võetud tekst jookseb lihtsalt nii välja, kuidas seda parandada, ei saa lihtsalt hakkama..
_________________ [img:]https://foorum.hinnavaatlus.ee/images/200x40_HV.gif[/img:] |
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
0 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
13.07.2009 16:28:11
|
|
|
jnt kirjutas: |
Renka kirjutas: |
mikk36, viisakas on peale formi submitti redirect teha järgmisele lehele, et mõni mees refreshi vajutades andmeid uuesti ei submitiks. |
Selle jaoks mu arust praktilisem ja toimivam viis kasutada token'ite süsteemi. A'la, hidden lahtris suvaline number ja küpsisesse/sessiooni see sama. submit'imisel kontrollitakse neid ja kui klapib, on korras. Toimib küll. Hoiab ka natuke teatud tüüpi rünnakute vastu.  |
Issand jumal küll, pole mõtet teiste kallal õiendada ja õigustuseks tuua "mul ennem on töötanud" kui loogika asjal on mööda. Mis su ilusast tokenite süsteemist siis saab kui kasutajal on kahes aknas / tabis sinu leht lahti ? Kohe ütlen mis saab, halvimal juhul saab kordamööda eri akendes vastu hambaid ja sinupoolne ainus vastus oleks asjale "mul ju töötab" ning sa ei jagaks halligi mis probleem on.
Lahtiseletatult:
Sa genereerid uue tokeni, paned sessiooni massiivi (või küpsisesse) et token on 1234, formi paned hidden välja et token on 1234.
Kasutaja vaatab ühte lehte ühes aknas, kõik on ilus.
Kasutaja võtab uue akna lahti.
Kood ütleb uut formi genereerides et sessioonis olev token on nüüd 2345, kuvatud formis on ka 2345.
Kasutaja teeb seal midagi, otsustab minna eelmisele tabile/aknasse tagasi, submitib seal formi ja saab piki hambaid et formist tulnud token 1234 ei klapi sessioonis oleva tokeniga 2345 (või veel mõne muuga).
Selle käigus kuvatakse talle uut formi ja pannakse tokeniks 3456 (sessioonis ja formis).
Kasutaja vaatab et mida kino, mingi jama, läheb teise aknasse tagasi ja saab seal jälle piki hambaid kuna sessioonis on token 3456 aga temal seal lahti jäänud formis on 2345.
Ja nii ringiratast
Ma olen väga palju taolisi asju näinud kus arendajad lambist eeldavad, et kasutajal on ainult üks aken lahti ja siis topitakse igast jura sessiooni, ning mitme akna lahti oleku puhul on kohe kõik metsas.
Ikka ilgelt vihale ajab kui arhitektuurile ja kasutajapoolsele käitumisele üldse ei mõelda ja dokumentatisoonist kah välja ei loeta mismoodi sessioon ja cookied töötavad browseri akende vahel (vihjeks: kahe eri akna vahel on küpsised jagatud => sellest tulenevalt on ka php sessioon jagatud)
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
13.07.2009 16:39:41
|
|
|
inzinz, mis hea pärast sa kahelt aknalt sama vormi kaudu korraga midagi sisestad? No kammoon, alati on võimalik leida mingit jura, kuidas üks või teine asi ei tööta. Aga miks ta peaks töötama niimoodi? paras debiilsus sama vormi avada mitmes aknas ja neid mõlemaid kasutada.
Suva-refreshid taustal on veel rohkem mööda loogika, kui tokenid. Tokenid vähemalt tõstavad ka mõningal määral turvalisust.
Ja mulle pole vaja seletada, mis moodi küpsised/sessioonid toimivad ja mida tokenite süsteem endaga kaasa toob.
Vot sulle minu paar senti!
(Deem, leiaks ma nüüd ühe video, mis sulle puust ja punaseks teeb, miks tokenid head on, oleks tore... aga sellega läeb tsipa aega.)
_________________ Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda.
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt |
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
13.07.2009 16:48:37
|
|
|
jnt, niikaua kui ehitad väikeseid veebilehti ja/või mõne üksiku kasutajaga süsteeme ei ole su lahenduses võibolla tõesti midagi halba. Suudad asja hallata ja kuna kasutajate mass on nii väike siis ei teki ka probleeme (või pigem ei raporteerita nendest).
Kui süsteem on aga suurem ja pead töötama veel mitme inimesega tiimis siis sinu loogika ei tööta enam.
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
13.07.2009 17:15:35
|
|
|
jnt, palun väga, kirjuta siis omale formide alla suures ja punases kirjas kasutajatele "kui kahes aknas selle formi lahti võtad siis oled debiil"
Sa ei saa kasutajal keelata mingit postitamise formi kahes aknas lahti võtta. Googledades php form token oli kohe kaks esimest pealtnäha asjalikku tulemust (http://www.phpro.org/tutorials/Preventing-Multiple-Submits.html http://phpsec.org/projects/guide/2.html) sellises stiilis:
sisendi kontroll:
kasutaja submitib formi
kontrollime kas postitatud token on sama mis sessioonis
väljastamine:
genereerime unikaalse tokeni
paneme tokeni sessiooni muutujasse
kuvame tokeni formis
Nii, ja kui nüüd kasutaja võtab ühes aknas lahti mingi formi vaate, siis otsustab veel korra lahti võtta, siis avastab et krt juba oli lahti, paneb uue kinni ja üritab vana formiga submittida, siis selline loogika annabki talle piki hambaid.
Tokenite idee on hea, aga selline sessiooni salvestamine on lollus, katsu sa kasutajale seletada et tema oma süü et ta sinu lehel mingit formi vales järjekorras vaatas, kasutaja jaoks on sinu leht see mis on vigane mitte tema käitumine.
See ei ole koht, kus kommenteerida "alati on võimalik leida mingi jura kuidas asi ei tööta", vaid vaid koht, kus sa peaksid otsima paremat lahendust kus oleks olemas tokeni süsteem CSRF vältimiseks, kuid samas sa ei piira seda et kasutajad võivad, üllatus-üllatus, sinu lehte kahest aknast vaadata.
EDIT: Kui veel aru ei saanud, siis mitte samal ajal vaadata, vaid teha eelkirjeldatud viisil, et võtab kogemata lahti sama koha. Või kui sul on tokenite süsteem kõikidel formidel läbi ühise sessiooni muutuja siis võtab lahti teises aknas suvalise koha kus ka formi kuvatakse ja ongi perses
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
13.07.2009 17:16:19
|
|
|
inzinz, siin on pakutud välja kahte varianti: token'id ja refresh'imine. Kas sa pooldad lehti, mis ise refresh'ivad ennast? Selline praktika on samamoodi ebasoovitatav, nagu ei ehitata täna ka lehti iframe'idega.
Ja kui tahad väga keeruliseks minna, võid ju samale formile tokeneid genereerides teha nii, et ühe formi kohta saab olla mitu tokenit. Kontrollitakse, kas vähemalt ühega ühtib, mis genereeritud on ja kui ühtib, submititakse asi ära + kustutatakse tokenite "arhiiv". Ongi probleem lahendatud... Pane need tokenid sessiooni kujul kasvõi "token|token|token|".
_________________ Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda.
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt |
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
13.07.2009 17:28:00
|
|
|
Kui sessioonis kõik tokenid alles hoida siis jah kaob see jama ära, et teist tabi/akent lahti võttes kirjutatakse token üle ja siis eelmises tabis on asi metsas. Siis peab jälgima seda et neid tokeneid paljuks ei lähe ja sessiooni pirakaks ei aja.
Aga refreshimise all sa mõtled mida täpsemalt ? Ma kaldun arvama, et refreshimise all sa pead silmas neid lehti mis näitavad peale postitamist mingit vahelehte (näiteks phpbb foorum) mis siis suunab edasi uuele lehele (näiteks topicu vaatesse uue postituse juurde).
Mida mina ja pakun et ka teised silmas peavad on selline kood php's:
if(isset($_POST['teemidagi'])) {
//loogika siia
header('Location: viewtopic.php?p='.$post_id);
exit;
}
|
Selline headeriga redirect kasutaja poolel on 100% märkamatu (kui just headereid ei jälgi).
Sisuliselt saadab kasutaja browser formi postituse serverisse, server lisab kirje andmebaasi ja ütleb browserile (ilma lehte kuvamata) et mine nüüd sinna aadressile edasi. Kasutaja poolelt vaadates submitib ta vormi ära ja järgmine hetke on viewtopic.php?p=123 aadressil.
Ei mingid "old school" jama et "oota 3 sekundit ja leht suunab sind edasi".
EDIT: Ja see on ilusti kasutajapoolse refresh vajutamise kindel, browseris refresh või F5 vajutades mängib browser läbi ainult viimase tegevuse ehk viewtopic.php?p=123 aadressile mineku.
Nüüd sinna juurde lisada see sessioonis erinevate tokenite hoidmise süsteem (ideaalis kuidagi nii et üle teatud aja tokenid eemaldatakse automaatselt) ja ongi sul olemas CSRF kindel süsteem + refreshi vajutades ei saa kasutaja mingit veateadet ega ei hakka mingit suurt faili uuesti submittima kogemata.
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
13.07.2009 17:40:18
|
|
|
jnt kirjutas: |
Renka, mitu inimest kasutab sama arvuti tagant sama brauserit? No tule taevas appi... |
Täiesti reaalne ju.
Kasvõi HV foorumi näitel - mul on päris mitu TABi lahti. Vaata iga teema lõpus on ka kiirvastuse vorm - sinu tokenite süsteem ei toimiks kuidagi ju. Või mis?
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
13.07.2009 18:26:34
|
|
|
inzinz, ei, ma mõtsin ikka seda header()'i refresh'i, ehk sain aru, millest eelpool räägiti, kuid siiski on minu arust tegemist väheke jama lahendusega. Kui tekib viga, millest tahad teatada + tahad formi ka alla lüüa sisestatud andmetega, millest midagi oli vale, siis selle asja lahendamine pole kuigi lihtne refresh'imisel. Samas, kui sellist refresh'i koodi mitte vahele toppida, on võimalik luua ilus kena errorite/teadete kuvamise süsteem, mis formiga samal lehel kenasti kõik vead/teated ära kuvab, kui neid on.
Renka, aga miks sa tahad kiirvastusele tokeneid toppida?
_________________ Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda.
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt |
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
13.07.2009 18:29:57
|
|
|
jnt, kiirvastus ju tavaline form nagu iga teinegi. Või kuidas sa selle lahendaksid?
Kusjuures seesama phpBB foorum suunab su headeri abil peale formi submittimist uuele lehele ilusasti. Huvitav küll miks?
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
13.07.2009 18:34:02
|
|
|
Renka, siin foorumis, kui vastust kirjutad, oled sa sisse logitud ja sind on võimalik mingilgi moel vasututsele võtta. Teema algas aga mingist kuulutuste süsteemist, kus vist igaüks sai kuulutuse lisada. Seal on igasugune turvanipp teretulnud, kuna kes iganes saab form'ile ligi ja saab kuulutusi ka lisada.
_________________ Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda.
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt |
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
13.07.2009 18:35:31
|
|
|
jnt, mis jama sa nüüd ajad? Loe nüüd uuesti millest vaidlus algas.
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
13.07.2009 19:46:29
|
|
|
jnt kirjutas: |
inzinz, ei, ma mõtsin ikka seda header()'i refresh'i, ehk sain aru, millest eelpool räägiti, kuid siiski on minu arust tegemist väheke jama lahendusega. Kui tekib viga, millest tahad teatada + tahad formi ka alla lüüa sisestatud andmetega, millest midagi oli vale, siis selle asja lahendamine pole kuigi lihtne refresh'imisel. Samas, kui sellist refresh'i koodi mitte vahele toppida, on võimalik luua ilus kena errorite/teadete kuvamise süsteem, mis formiga samal lehel kenasti kõik vead/teated ära kuvab, kui neid on.
Renka, aga miks sa tahad kiirvastusele tokeneid toppida?  |
Issand jumal, selle jaoks tuleb progeda nii nagu teha on vaja Keegi ei rääkinudki et on vaja alati refreshida. Refreshid siis, kui on kirje baasi lisatud ja erroreid pole. Mis siin loogikas arusaamatuks veel saab jääda ???
kasutaja postitab formi
kui kõik ok sisestame baasi ja suuname kasutaja location headeriga uuele aadressile (kasutaja saab kohe õiget aadressi sisse kopeerida)
kui ei ole ok, kuvad ilma refreshita formi koos vanade andmetega
Tuleb teha nii nagu vaja on, mitte kogu aeg refreshiga suunata edasi või kogu aeg ilma refreshita läbi ajada. Kombineerida tuleb osata vastavalt vajadusele et saada valmis parim lahendus...
EDIT:
Kui nüüd jälle ei saa minu jutust poindist aru, siis ausalt ma enam ei jaksa seletada, tee sa oma lehtedega mida tahad, aga palun ära hakka levitama müüti "location header on paha" nagu disainerid kõik levitavad müüti "kõik tabelid on pahad, kõik tuleb teha dividega" ja siis leiutavad igast jubedusi kokku mis "ootamatutes" reaalsetes olukordades piiksu kukuvad ja kogu lehe välimuse ära rikuvad
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
13.07.2009 20:43:23
|
|
|
inzinz, kuid mis juhtub siis, kui sa tahad õnnestumisel ka teadet kasutajale kuvada? Kui sul formiga leht tegeleb ka andmebaasi sisestamisega, mitte ei ole selleks mingi teine adre, mis pärast suunab nt formi juurde tagasi, siis on lihtne kontrollida andmeid ja kuvada vajalikud teated või vead. Kui sa aga peale sisestamist tahad kuskile ära suunata, siis see, kuhu sa suunad, sinna saata kaasa ka teade on märksa keerulisem. Pmst isoleerid ju kontrolli ja hiljem kuvatava osa ära. Okei, võib alati nii teha, et sul on mingi n+1 teadet, igal teatel on oma id, mis nt kahe astmed järjest ja siis liidad kokku, suunad edasi, andes selle liidetud tulemuse ja siis järgmisel lehel jagad uuesti osadeks, otsid igale id'le tema teate ja on ka tehtud, kuid miks nii kilplaslikult asjale läheneda?
Aga ei, ma saan su poindile kenasti pihta ja see vaidlus, mis meil on, aitab meil mõlemal ehk üht või teistpidi targemaks saada ja uusi ideid luua. Ja kõrvalvaatajal on eriti mugav selle vaidluse pealt õppida, mida saab teha ja mida tasub teha... ja millal.
_________________ Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda.
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt |
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
13.07.2009 20:57:45
|
|
|
jnt, mingisuguste teadete kuvamine on ju kõige lihtsam asi.
Kirjutad oma teate sessiooni ja järgmisel lehel kuvad selle välja ning kustutad sessioonist.
Mingi URLiga teate kaasaandmine aga ei sobi minusilmis kuidagi. URLis olev info peaks olema siiski ainult see mis on antud lehe kuvamiseks hädavajalik. Kui kasutaja URLI kopeerib siis ta näeb teadet ju igal korral uuesti - näiteks kui ta peaks selel teatega URLi bookmarkima.
Aga ürita asjast suuremat pilti näha. Sul on olemas lisamise vaade ja kuvamise vaade. Mõlemal vaatel on ka oma unikaalne URL. Juhul kui nüüd andmed on ilusasti lisatud läbi lisamise vaate. Siis loogiline on ju, et kasutaja näeb sisestatud andmeid läbi kuvamise vaate. Sellisel juuhl on sul kõik kuvamisega seotud kood/HTML ainult ühes kohas. Ei ole vaja meeles pidada, et kuskohast nüüd mul kuvamise HTMLi juurde inkluuditakse ja mis tingimustel. Hallatavus on parem ja ei pea lisatingimusi meelde jätma. Lisaks kaasneb sellega kasutajale parem kasutusmugavus kuna peale mingi asja siestamist saab ta aadressiribalt kopeerida omale kohe õige URLi mida siis vajadusel kellelegi mailida või omale bookmarkida jne jne.
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
13.07.2009 20:59:50
|
|
|
Renka, sinu näitel ehk selline variant parem. Samas, kui tegemist on rohkem admin lehe laadse asjaga, kus sa tahad, et peale lisamist tuleb sul see sama form ette, kas siis just lisatud andmetega või uue vormina, siis mis suunamist sa siin ikka hakkad tegema...
Ühesõnaga, siin tuleb tõesti välja see, et tuleb progeda, kuidas vaja on.
_________________ Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda.
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt |
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
13.07.2009 21:19:09
|
|
|
jnt, kui vaja sama vormi siis suunad muutmisvaatesse nii nagu sa esimest kordagi sinna lehele satuksid. Sellest kirjutasin juba teema alguses.
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
jnt
HV Guru

liitunud: 10.05.2005
|
|
Kommentaarid: 110 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
0 :: |
102 |
|
tagasi üles |
|
 |
|