[ Milos911 @ 15.05.2009. 09:39 ] @
Prvo pitanje:
Moram da inkludujem par stranica. Ako kod napisem ovako:

Code:
include "$theme/form_deafult.php";


znam da postoji opasnost od hakovanja.
A da li je moguce hakovati skriptu ako kod napisem ovako:

Code:
include "tpl/$theme/form_deafult.php";
?

I ako je moguce kako da se zastitim (jedino sto mi pada na pamet je da izvadim iz baze sve dozvoljene vrednosti za $theme varijablu pa da proverim da li je $theme==$theme_allowed pre include-a(ali to mi se ne radi zbog pitanja br2:) ))

Drugo pitanje:
Da li je normalno da mi se skripta izvrsava 0.02xxxxx sec? Imam 3 if-a i 5 query-ja. nekako mi se cini da je ovo previse dugo vremena. Skriptu testiram kod mene na kompu (localhost, php verzija 5.2.6).

I jedno pitanjce(ne zasluzuje mesto u imenu teme):
Da li je moguce otkriti ime postovane varijable? Trebalo bi da jeste posto mozilla upozorava da ce ako osvezimo stranicu post data opet biti postovano(al srocih ovo svaka mi cast :) ). Znaci da je moguce otkriti varijablu koja se postuje cim browser zna za nju. Onda da se ispravim pitanje glasi kako otkriti ime varijable koja se postuje?

Pozdrav i hvala
[ Nikola Poša @ 15.05.2009. 11:52 ] @
Što se tiče ovo prvog pitanja, naravno da je moguća opasnost od hack-ovanja, npr. neko samo doda u URL-u parametar ?theme=1, i nastaju problemi. Ali to važi samo ako je register_globals podešeno na On, i shodno tome, najbolja zaštita je da tu opciju isključiš u php.ini fajlu. A dugi način zaštite je naravno OBAVEZNA inicijalizacija promenljivih, npr. u tvom slučaju:
Code:

$theme = '';

//dohvatanje izabrane teme

include "$theme/form_deafult.php";

Za drugo pitanje, možda je dobro da vidimo i kod te skripte, da bi mogli da komentarišemo o performansama... Ali svejedno, mislim da je to vreme izvršavanja ok.

A ovo treće pitanje nisam baš najbolje razumeo... :S
[ Milos911 @ 15.05.2009. 12:07 ] @
Pa sad kod mi se ne daje ako ne moram (u pitanju je cudo nevidjeno :D(to nije skripta, to je avion :D)):) Kad je zavrsim okacicu je negde i testirati vreme pa cete mi reci sta mislite (nadam se ;) ).

Taj tvoj kod nisam razumeo. Sta je tu zasticeno? Tj kako? Znaci ovaj kod je siguran:

Code:

$dataS= mysql_fetch_row(mysql_query("SELECT * FROM blabla WHERE bla='$bla'")) or die;

$theme    = $dataS['8'];

//header
include "tpl/$theme/header_deafult.php";
?

U stvari mislim da razumem delimicno. Sigurno je zato sto je setovana varijabla $theme, pa ako ju je haker poslao preko svog forma vrednost njegove varijable ce biti prepisana. Je li tako? Izvinjavam se ako postavljam glupa pitanja :).

Jos jedno glupo pitanje: Zasto ne mogu da napisem u ovom gore kodu napr:

Code:
$theme=$data['ime_kolone']
Negde mogu ovo da napisem a negde ne. Stvarno ne razumem zasto?


Trece pitanje: Ako ti imas strane 1.php i 2.php. Sa strane 1.php saljes postom neku vrednost na stranu dva. Kako ja da saznam ime varijable koju ti postujes? Da li me sad razumes?



//poceh da pitam svasta u temi p ako se ovo racuna kao offtopic recite da ne pitam :)
[ Nemanja Avramović @ 15.05.2009. 12:13 ] @
Sve prosleđene varijable se nalaze u _POST nizu.
Code:

<pre>
<?php
print_a($_POST);
?>


Nadam se da će ti ovo pomoći?

Takođe, ovo $_POST možeš da zameniš sa $_GET. Postoji i $_REQUEST, koji sadrži elemente oba niza (i $_POST i $_GET).
[ Nikola Poša @ 15.05.2009. 12:23 ] @
Pa dobro onda, i taj tvoj kod je ok, jer uvek će ta promenljiva $theme dobiti tu vrednost iz rezultata upita, tako da i ako je neko pokušao da je hack-uje, njena vrednost biće overwrite-ovana.

Taj propust sa register_globals je obično vezan za situacije kada treba da prikazuješ neki sadržaj u zavisnosti od određenih privilegija, imaš takav primer ovde.

Citat:
Milos911:Zasto ne mogu da napisem u ovom gore kodu napr:

Code:
$theme=$data['ime_kolone']
Negde mogu ovo da napisem a negde ne. Stvarno ne razumem zasto?

Ako hoćeš asocijativan pristup koristi mysql_fetch_assoc().

A za treće pitanje, pa npr. ti možeš ovako da dobiješ sve indekse u $_POST nizu:
Code:
$imena = array_keys($_POST);

I onda je u tom nizu prvi element ($imena[0]) ima za vrednost ima naziv (asocijativan indeks) prve promenljive u $_POST, drugi element ima naziv druge, itd.
[ Milos911 @ 15.05.2009. 12:25 ] @
Tu znam. Nisam bas toliki noob :)
Mene zanima kako da saznam te varijable ako se nalaze u skripti ciji source nemam. Napr kako da saznam post varijablu koja prenosi text koji upravo pisem(ovo je samo primer :) )

Ovo poruka je bila namenjena nemanji ali evo sad i tebi. Ja znam da postujem i getujem. Hocu da znam sta drugi postuju i getuju(get je lako, post je tesko). Znaci trebaju mi imena tudjih post varijabli :)

Hvala za primer i objasnjenje :)

[Ovu poruku je menjao Milos911 dana 15.05.2009. u 13:56 GMT+1]
[ dakipro @ 15.05.2009. 12:33 ] @
Ja evo sve pratim i nadam se pojasnjenju treceg pitanja, ali nikako da pofatam sta pokusavas da vidis :S
Kako da vidis sta drugi postuju, pa samo pogledas u $_POST ?
Ili otvoris source stranice i vidis u formi kako se zovu post polja, ako si mislio sa te strane da vidis?
Ili ti hoces da vidis na nekom trecem sajtu sta neko postuje?
Daj neki primer cemu bi ti to sluzilo, uopste ne mogu da skontam sta si zamislio
[ Milos911 @ 15.05.2009. 12:43 ] @
http://zsj.freehostia.com/temp.php //link je wml strana(radim wml pa mi je lakse da sklepam kod na brzinu :))
Moze li neko da sazna kako se zovu varijable koje sam echo na strani temp2.php. E to me zanima. Ako me sad niste razumeli odustajem :D
[ dakipro @ 15.05.2009. 12:57 ] @
Pa ne moze, ali moze da vidi kako se zove to sto je poslao serveru, mislim, nekako mu to logicno dodje...
Ono sto je poslato serveru zove se
Poruka:<br/><input id="__wmlbrowser_poruka" name="poruka" maxlength="400" title="Vasa poruka"/><br/>
Sajt:<br/><input id="__wmlbrowser_sajt" name="sajt" maxlength="100" title="Vas sajt" value="http://"/><br/>
van forme, a u formi imas:

<input type="hidden" name="ime" value="$(ime)" origvalue="$(ime)"/><input type="hidden" name="poruka" value="$(poruka)" origvalue="$(poruka)"/><input type="hidden" name="sajt" value="$(sajt)" origvalue="$(sajt)"/>

mada, ne znam cemu ovo sluzi u value u hidden polju, ali nije ni bitno

[ Milos911 @ 15.05.2009. 13:06 ] @
Ajoj koja sam ja budaletina. Pa i kad se pogleda source stranice vidi se ono sto mi je trebalo(mislim na source ovako iz browsera). A kako si ti to video(posto se razlikuje od source-a verovatno si koristio drugu metodu)?

Stvarno se izvinjavam zbog ovolikog nepotrebnog smaranja... :(
[ dakipro @ 15.05.2009. 13:14 ] @
Pa reko sam ti odma da moze da se vidi iz sourca:
Citat:
dakipro:
Ili otvoris source stranice i vidis u formi kako se zovu post polja, ako si mislio sa te strane da vidis?...

Ja sam gledao generated source, verovatno ga FF3 i wml plugin malo promene, nemam pojma, ali i nebitno je...
[ Milos911 @ 15.05.2009. 13:19 ] @
Jesi ali sam mislio da mislis na source desni klik, open with, nesto.
Hvala na trudu i opet se izvinjavam.