Pereiti prie turinio

PHP žinovams klausimas (skaitykite šią temą, jei jūsų IQ > 120)


Rekomenduojami pranešimai

Taigi gerbiamieji šeštadieniautojai paklausiu jūsų vieno simple dalyko.

Nu tarkim yra funkcija, nustatanti, ar žmogus prisijungęs.

Jeigu žmogus prisijungęs, jam rodo submit.

Klausimas: ar užtenka submit mygtuko vykdymą nuo neregistruotų žmonių apsaugoti taip? Mygtuko tipas: POST.

if (prisijunges() == 1) {
// rodom mygtuka
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Žinoma, kad taip :D Nes jei jis nebus prisijungęs - to mygtuko net nematys :)

 

Tiesa, nesuprantu kaip mygtuko tipas gali būti post? :) Mygtukas tipo neturi, nebent submit, reset ir t.t., tai čia jau formos tipas ;)

Bet bet kokiu atvėju, jei PHP sąlyga neteisinga, tau to mygtuko nerodys ( jei po else jo vėl nedėsi )

Redagavo ModestasV
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nieko tu cia neapsaugai, atsidaryti galiu Firebug ir dasidet mygtuku kiek ir kokiu tik noriu.

 

Na tikrai ne :)

Aš padarau, kad nerodytų SUBMIT mygtuko ir nebūtų FORM, tai kaip tada? Juk nebus formos, nebus ir submit.

Plius ant submit uždedu kokį sudėtingesnį pavadinimą ir jau apsaugojau, nes jo neatspės :) O jei neatspės - vadinasi nevyks ir tai, kas turėtų vykti paspaudus submit normalų :)

 

Nu nu, ir kaip apsisaugoti nuo to firebug? Spėju - niekaip?

 

Nuo firebug gali apsisaugoti, pvz:

Submit mygtuko pavadinimą dėk kokį sudėtingą, o kartu ir nerodyk pačio mygtuko bei formos, nors žinoma tai pati papraščiausia apsauga, bet nuo tokių "hakerių" apsaugos :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na tikrai ne :)

Aš padarau, kad nerodytų SUBMIT mygtuko ir nebūtų FORM, tai kaip tada? Juk nebus formos, nebus ir submit.

Plius ant submit uždedu kokį sudėtingesnį pavadinimą ir jau apsaugojau, nes jo neatspės :) O jei neatspės - vadinasi nevyks ir tai, kas turėtų vykti paspaudus submit normalų :)

 

 

 

Nuo firebug gali apsisaugoti, pvz:

Submit mygtuko pavadinimą dėk kokį sudėtingą, o kartu ir nerodyk pačio mygtuko bei formos, nors žinoma tai pati papraščiausia apsauga, bet nuo tokių "hakerių" apsaugos :)

 

Nu kad mygtuko nerodyti žmogui tai čia nelogiška :D Kam tada jį išvis dėti?:) dėl name tai aha, nenaudoju jokių username, password, nes negali žinoti kaip čia kas. Esu jau įpratęs prefix naudoti ne tik prie mygtukų ar formų name, bet ir pačiam mysql prie table ir stulpelių pavadinimų

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nu kad mygtuko nerodyti žmogui tai čia nelogiška :D Kam tada jį išvis dėti?:) dėl name tai aha, nenaudoju jokių username, password, nes negali žinoti kaip čia kas. Esu jau įpratęs prefix naudoti ne tik prie mygtukų ar formų name, bet ir pačiam mysql prie table ir stulpelių pavadinimų

 

Nelogiška tai nelogiška, tačiau vienas iš variantų ;) Apsaugos 100% neturi, tačiau bent minimaliai "hakerių" atsikratai, kol atranda būdą kaip apeiti ;)

 

ps. Post'as virš parašė tikrai geresnį variantą nei slėpti mygtuką :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nesuprantu kuo skiriasi tas "neleisti postinti neprisijungus" nuo:

if (prisijunges() == 1) {
// rodom mygtuka
}

 

ta prasme tikrinti su isset() ir jeigu neprisijungęs, tada neleisti?

 

Ne :)

Aš pvz padaryčiau taip:

Rodau mygtuką, tačiau su php padarau jį disabled ( šiaip ) ir parašau, kad post'inti gali tik nariai. Tada jei kas dar padarau taip, kad:

if (isset($_POST['submit']) && prisijunges() == 1) {
// Irasau post'a
}else{
// Spausdinu error
}

 

Ir viskas :) Jei nors viena sąlyga nebus teisinga - jam mes error ir jis turės prisijungti :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ne :)

Aš pvz padaryčiau taip:

Rodau mygtuką, tačiau su php padarau jį disabled ( šiaip ) ir parašau, kad post'inti gali tik nariai. Tada jei kas dar padarau taip, kad:

if (isset($_POST['submit']) && prisijunges() == 1) {
// Irasau post'a
}else{
// Spausdinu error
}

 

Ir viskas :) Jei nors viena sąlyga nebus teisinga - jam mes error ir jis turės prisijungti :)

 

ai žodžiu bergždžias darbas dalį kodo tvarkyt. niekada gyvenime nei tų mygtukų disablindavau nei dar ko ir niekas kitais būdais apart sql injekcijų nebuvo nieko prišikęs.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taigi gerbiamieji šeštadieniautojai paklausiu jūsų vieno simple dalyko.

Nu tarkim yra funkcija, nustatanti, ar žmogus prisijungęs.

Jeigu žmogus prisijungęs, jam rodo submit.

Klausimas: ar užtenka submit mygtuko vykdymą nuo neregistruotų žmonių apsaugoti taip? Mygtuko tipas: POST.

if (prisijunges() == 1) {
// rodom mygtuka
}

 

Formoms apsaugoti geriausia naudoti sesijas :)

Labai dažnai pasitaiko, kad formas atakuoja iš kito serverio arba su Firebug, tokiu atveju padeda tik Sesijos :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Jei POST - NE!

GET ir tik GET yra vykdomas per adreso laukelį :) POST yra naudojamas kitaip, todėl jei būtų galima - nebūtų tikslo turėti dar ir POST ;)

 

Sveikinu nusišnekėjus :) Jei neįmanoma POST parametrų perduoti per adreso laukelį, taip kaip GET.. tai dar nereiškia, kad išvis neįmanoma jų sufalsifikuot :) Į betkokį php skriptą, gali perduoti tiek GET tiek POST parametrus. Tik vat POST saugesnis biški :lol: nes apsaugo nuo žmonių, kurie nemoka ir nežino, kaip postint duomenis :lol:

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nesimatavau IQ normaliai, bet esmė: ribok ne [vien] mygtuko atvaizdavimą, o pačius veiksmus, kurie seka. Vien tai, kad nerodysi mygtuko nieko nereiškia (pvz. išsitraukia POST duomenis prisijungęs, atsijungia, ir padaro requestą susivedęs duomenis pats).

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Norėjau parašyti tą patį, ką Silke parašė. Modestai, daug kur suklaidinai :D

 

Čia gali būti, bet POST paprastai per url tikrai nepermesi..? Sufalsifikuoti gali, bet vėlgi.. nu žodžiu :D

 

Anyway - matyt mano IQ < 120 tada :D ( ps. juokauju jei ką :) )

Nuoroda į pranešimą
Dalintis kituose puslapiuose

POST sufaikint taip pat lengva kaip ir GET. Neskaitau vieno ar kito saugesnio nes jei tas kuris gali pasinaudot spraga, tam nesunku bus parašyt porą simbolių:

 

<form method="POST" action="http://petro-super-saugus-saitas.lt">
   <input name="username">
   ....
</form>

 

Geriausia tikrink ar neprisijungęs kaip, kad rašė:

 

if ( ! prisijunges() && $_POST) {
   // prijungi
}
else {
   // bando prisijungi, kai jau yra prisijunges
}

 

O jei ką tai galima ir taip, bet aš taip nedaryčiau:

 

<?php 

$slaptas_kodas = random_key_function();

if (isset($_POST[$slaptas_kodas])) {
  // prijunk
}

?>

<form name="<?php echo $slaptas_kodas; ?>" ... >
   ...
</form>

 

Esmė, kad formos vardas visą laiką bus kitas, tai sunkiau ją sufaikint.

 

Bet taip nedaryk, daryk pirma variantą, o jei darysi tai prie antro varianto prijunk ir pirmą, nes antras variantas tikrai nėra saugus.

 

Nemačiau kada tema prašyta :|

Redagavo TomasAchmedovas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

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

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...