mitnick
Spalis 4, 2007

PHP klausimai #6

Tikiuosi, jog pasigedot PHP klausimų, nes jie sugrįžo! :) Kolega Slave šiek tiek užsiėmęs, todėl aš buvau paprašytas pratęsti klausimų rubriką.

1. Kaip galima panaudojant CURL biblioteką išsiųsti duomenis POST metodu į HTML formą?
2. Kaip apsisaugoti, kad pašaliniai vartotojai neperimtų Jūsų vartotojo sesijos cookie rakto?
3. Kaip priversti naršyklę interpretuoti failą image. kaip paveiksliuką?

<img src="image.php" ... >

4. Ar įmanoma iškoduoti phpBB forumo kuriamą captcha ir kokiu būdu?
5. Kaip išsaugoti vartotojo slaptažodį duomenų bazėje (laukelis varchar(40)), kad pavogus duomenų bazę, nebūtų galima parinkti slaptažodžio?
6. Kokią koduotę naudoti, kad tinklalapyje vienu metu atvaizduojami duomenys lietuvių, anglų bei rusų kalbomis būtų atvaizduojami tinkamai?
7. Kada nebegalima naudoti funkcijų header(), session_start() ir pan.?
8. Kaip padaryti, kad klaidos atveju, klaidos pranešimas būtų ne išspausdinamas į ekraną, o išsiunčiamas e-paštu administratoriui, o į ekraną išvedamas kitas pranešimas?
9. Kaip išspausdinti HTML kodą (su įrašytomis kintamųjų reikšmėmis), kuriame yra kabučių ir spec. simbolių, nenaudojant “escape” priemonės (\”)?
10. Kaip sukurti captcha, kad neiškoduotų botai ir negalėtų pildyti formų automatiniu būdu?

Sėkmės atsakinėjant!

Panašūs straipsniai


“PHP klausimai #6” komentarų: 7

  1. Eimantas

    kažkokie silpni klausimai pasitaikė .) anksčiau buvo įdomiau

    1) yra daug kodo pavyzdžiu tokiems reikalams
    2) yra du būdai. rašyti xss-free kodą arba kiekvieno vartotojo profiliui taikyti domeninę prieigą (kaip livejournal, deviantart, wordpress.com, etc.)
    3) Nusiųsti atitinkamo paveiksliuko tipo mime antraštę (header (”Content-type: image/jpeg”);)
    4) Manau, kad įmanoma su paveiksliukų analizavimo programa.
    5) Naudoti sha1 hešavimo alogirtmą su šiek tiek “druskos” .) (nelabai related su PHP IMHO)
    6) UTF-8 (taip pat nelabai related to PHP IMHO)
    7) Tada, kai prieš jų naudojama buvo pasiųsta nors vienas baitas tekstinės informacijos. Tačiau nuo tokių neapsižiūrėjimų gali apsaugoti ob_start()
    8) Pasirašyti savo ErrorHandler klasę, kuri galėtų tas klaidas rašyti net į duomenų bazę.
    9) naudoti HEREDOC stilių (

  2. Eimantas

    10) animuotas gif, flash arba audio failas su foniniu triukšmu

  3. Armandas

    1. Naudojant curl_setopt() ir atitinkamas konstantas.
    2. Sukuriant kukį reikia nurodyt domeną/kelią kuriam jis priklauso. Taip pat, kad būtų pasiekiamas tik http būdu.
    3. iš image.php siųsti headerį nurodant atitinkamą Content-type
    4. nesu matęs tos kepčios
    5. 40 simboliu ilgis turbūt sufleruoja sha1 šifravimą :D md5 užšifruotas stringas su tam tikru prieskoniu tarnautų ne ką blogiau.
    6. utf-8
    7. po bet kokio output’o
    8. set_error_handler()?
    9. concatenation, heredoc, formatted string. nalabai aiškus klausimas.
    10. labai konkretus klausimas :D

  4. e

    1. Google -> CURL POST (nežinau).
    2. Sesijoje saugoti ir IP adresą, kurio dėka ir pradėta sesija.
    3. Nusiųsti paveiksliuko formato headerius.
    4. Google (decode phpBB captcha)
    5. a) Nesaugoti plain tekstu; b) Saugoti slaptažodį užkodavus kokiu nors vienos krypties algoritmu; c) Kartu su b) naudoti ir salt’ą.
    6. utf-xx? :P
    7. Kai jau koks nors tekstas išsiųstas į išvedimo buferį.
    8. Pasirašyti funkciją, kuri tvarkytųsi su klaidom ir ją perduoti set_error_handler() f-jai. ‘display_errors’ nustatyti ‘off’
    9. Kažko nesuprantu.
    10. a) captcha teksto neįrašytį į html kodą; b) galima naudoti kelis paveiksliukus; c) prašyti įvesti ne tekstą iš paveiksliukų, o išspręsti kokią nežmonišką lygtį ar dar ką.

  5. Kernius

    1. curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, ‘laukelis=reiksme’);

    2. SSL?

    3. Failo image.php pradžioje nurodyti: header(’Content-type: image/jpeg’);

    4. Galima. Turbūt taip pat kaip ir daugumą, kuo phpBB ypatingas?

    5. Jei “parinkti” reiškia “sužinoti reikšmę”, tada reikia užkoduoti naudojant SHA-1.

    6. UTF-8

    7. Kai kas nors jau būna išvesta į ekraną.

    8. error_log(’Pranešimas’, 1, ‘jusu@elpastas.lt’);

    9. echo htmlentities($kodas);

    10. Geras klausimas…

  6. fosron

    1.
    Panaudojam funkcija curl_setopt , nurodydami keleta konstantu :)
    Sunciami duomenys bus $post masyve.
    [code]

    $post[’test’]=”testuojam”;
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    [/code]
    2.Sausainiui nustatyti domena , tik is kurio jis gali buti pasiekiamas :)
    3.Image.php faile siusti header’y (header f-ja) su paveiksliuko mime-type , pvz content-type:image/gif .
    4.-
    5.Uzkoduoti kokia nors koduote , pvz md5 ar sha1
    6.Utf-8
    7.Kai pries jas narsyklei buvo issiusti betkokie doumenys.
    8.Pasirasyti funkcija , kuri butu naudojama klaidoms parse’inti , ja priregistruoti naudojant set_error_handler. Placiau http://lt.php.net/manual/en/function.set-error-handler.php
    9.Panaudoti perl stiliaus isvedima , echo

  7. mitnick

    Dėl pavyzdžių, viskam yra pavyzdžių ir beveik visais klausimais. Toks atsakymas netinka, visa esmė ir yra rezultatas, o ne pasakymas, kad žinai, jog yra pavyzdžiu. Per egzaminą gi nesakysi dėstytojui, kad knygoje yra visa informacija, tikėdamasis, kad egzaminas bus įskaitytas.

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.