Tarkastan käyttäjän syötteen ja laitan sen sessioon, sessionista se menee suoraan tietokanta kyselyyn, joten voiko luottaa siihen, että sessionista tulee sitä tietoa mitä sinne itse on laittanut vai pitäisikös siinäkin vaiheessa vielä tarkastaa?
No eihän se pahaa tee tarkistaa uudelleen. Ja riippuen aivan PHP:n asetuksista, tuleeko session data käyttäjälle vai pysyykö se palvelimella.
Itse olisin niin vainoharhainen että tarkastaisin (tai käsittelisin) muuttujan uudestaan. Tietoturva-aukon koodaaminen on kuitenkin liian helppoa, esimerkiksi itse usein käyttämäni tapa:
<?php foreach ($_POST as $avain => $arvo) { $_SESSION['lahetystiedot'][$avain] = $arvo; } // Virheentarkistukset, uudelleenohjaukset yms. ?>
antaa hyvin helposti mahdollisuuden asettaa ja/tai muuttaa sessionin tietoja pelkällä post-lomakkeella, tosin ylläolevassa tapauksessa vain sessionin lahetystiedot-alkion arvoja...
Itse suosittelisin että tekisit funktion, tai vielä parempaa olion joka hoitaisi kantatoiminnot, sinne olisi niin helppo koodata yhteen kohtaan escapetustoiminto ja se vaikuttaisi suoraan kaikkiin sitä käyttäviin kyselyihin.
Kiitoksia, laitetaan sitten varmuuden vuoksi tupla tarkastus.
Aihe on jo aika vanha, joten et voi enää vastata siihen.