Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: file:///-protokolla ja tietoturvaurputus (Javascript+firefox)

Triskal [18.11.2006 23:30:21]

#

Teen parhaillani PHP-pohjaista galleriaa, jossa on tiedostojen uploudaus. Tarkoitus on, että kun käyttäjä äx hakee file-inputtiin tiedoston, siitä tehtäisiin heti vaikkapa 100 pikselin kokoinen thumbi, jonka pohjalta käyttäjä voi päätellä mikä kuva olikaan kyseessä, ja siten kirjoittaa jonkin messevän kuvatekstin. Lähdetään siis siitä, että mennään multiuploader-meiningillä, eli file-inputteja on useita per formi. Tämän thumbnail-jutun idea on siinä, että kun niitä kenttiä on monta, niin käyttäjähän ei enää muista minkä kuvan valitsi mihinkin. Siten olisi helpompi kirjoittaa kuvatekstit joka kuvalle samaan syssyyn, eikä sitä tarvitsisi tehdä jälkeenpäin.

Nih. Pohjustuksen jälkeen asiaan. Kokeilin mitenkä homma toimisi. Näin:

function ding() {

    var kent=document.getElementById('kent');
    var kuva=document.createElement('img');
    kuva.setAttribute("src","file:///"+kent.value);
    kent.appendChild(kuva);

}

<form>

<input type="file" id="kent" onchange="ding()">

</form>

Firefoxin Javascript-konsolin antama ilmoitus on kiintoisa:

lainaus:

Turvallisuusvirhe: Sisältö kohteessa http://localhost/kokeiluja/ ei voi ladata tai linkittää kohteeseen file:///d:/0001.jpg.

IE:ssä skripti ei tee myöskään mitään, mutta ei myöskään herjuuta konsolia.

Jos joku haluaa antaa vähän insightiä siihen mikä tietoturvariski sisältyy kuvan lataamiseen paikallisesti, niin olkoon hyvä vain, sekin kiinnostaa. Enemmän kuitenkin askarruttaa se, kuinka tämän epäkohdan saa kierrettyä.

EDIT: Ai niin. Kokeilin piruuttani tätäkin:

<img src="file:///d:/0001.jpg">

Konsoliin tulee sama ilmoitus, eikä kuva tulostu.

Draiz [19.11.2006 00:05:05]

#

No hyvä ettei tuo onnistu, olis aika vaarallista muuten.

Triskal [19.11.2006 00:53:09]

#

Miksi ja miten?

Metabolix [19.11.2006 16:51:22]

#

Kokeilepa ihan varmuuden vuoksi vielä ilman kaksoispistettä asematunnuksen jälkeen. Muistaakseni siihen ei sellaista kuulu laittaa.

Meitsi [19.11.2006 22:52:36]

#

Kun ajax-viritykset tuntuvat olevan muodissa niin voithan tehdä javascript-systeemin joka uploadaa tuon tiedoston serverille ja näyttää sen sitten.

Triskal [19.11.2006 23:57:40]

#

Totesin juuri, että Firefox ei salli minkään kovalevyllä sijaitsevan sisällön linkittämistä. Sen voi ohittaa, mutta ei siitä ole mitään hyötyä, koska en minä ole ainoa, joka tätä tulee käyttämään. Firefoxin sivuilla sanotaan, että tämä ohittamalla voi pahansuopa käyttäjä päästä käsiksi tiedostojärjestelmään. Minun päähäni ei vain mahdu, että kuinka kuvatiedostoon linkittäminen voi harmeja aiheuttaa? Sama se minusta on missä se sijaitsee. Ja kyseessä kumminkin on kuva, ei exe, eikä javascriptissä itsessään ilman mitään lisäkomponentteja ole mahdollisuutta tehdä sen enempää kuin linkittää. Ärsyttää.

sooda [21.11.2006 18:48:53]

#

Veikkaisin, että jollain javaskriptikikalla saisi enemmän tai vähemmän huomaamattomasti sivulle vaikka uppauslomakkeen, ja tiedot siihen myös, ja kans lähetettyä lomakkeen tiedot, eli upattua tiedostoja palvelimelle. Joskushan IE:ssä oli jopa semmoinen ominaisuus, että sivulla kävijän leikepöydän tiedot saa vietyä.

Vastaus

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

Tietoa sivustosta