1) Onko turvallista jos sisäänkirjautuminen tarkistetaan aina sivun lautauksen yhteydessä vain katsomalla onko esimerkiksi $_SESSION['kirjauduttu'] olemassa? (tuo sessioni siis luodaan kun syötetään oikea käyttäjä ja salasana, jotka löytyvät mysql-tietokannasta)
2) Onko tuossa 1)-kohdassa eroa onko $_SESSION['kirjauduttu'] vai $_SESSION['$ip'] ja sitä verrataan käyttäjän ip:hen? ($ip haettaisiin ja tarkistus tehtäisii joka sivun latauksen yhteydessä)
3) Vai olisiko parempi jos aina kun sivu ladataan uudestaan katsottaisiin onko $_SESSION['nimi'] ja $_SESSION['salasana'] mysql-tietokannassa? Hidastaisiko se turhaan vai olisiko paljon turvallisempi?
Sessionin turvallisuus
6
1244
Vastaukset
- Lauri.
>> 1) Onko turvallista jos sisäänkirjautuminen tarkistetaan aina sivun lautauksen yhteydessä vain katsomalla onko esimerkiksi $_SESSION['kirjauduttu'] olemassa?
Ei ole. Joku on saattanut kaapata istunnon (ei mikään kovin vaikea tehtävä). Sinun on myös varmistettava, että istunto edelleen kuuluu sen alkuperäiselle omistajalle. Googlettele lisää.
>> 2) Onko tuossa 1)-kohdassa eroa
Kyllä on. Usea ihminen saattaa käyttää Internettiä saman IP:n takaa, esimerkiksi taloyhtiöt ja kirjastot. Lisäksi IP saattaa vaihdella joissain todella harvoissa tapauksissa eri sivulatausten kesken, esimerkiksi jotkut matkaviestimistä käytetyt yhteydet (mutta tosi harvinaista)
>> 3) Vai olisiko parempi jos aina kun sivu ladataan [...]
No hidastaahan se. Aina se tietokantakysely näkyy, ja toisekseen kun tuo salasana on kerran annettu (onnistuneesti aloitettu istunto), niin kyllä se sieltä tietokannasta löytyy jatkossakin. Näen tuon aika turhana.- lintuherra
Mikäs sitten on suositeltu tapa käyttää sessioneita turvalliesti?
Ja tuli toinen turvallisuuteen littyvä asia mieleen.
Sivustoa luetaan index.php:n kautta includettamalla siihen erillaisia tiedostoja, esim. uutiset.php, kayttajat.php. Jos kuitenkin haluan, että uutiset.php:tä ei voi lukea muuta kuin index.php:n kautta niin onko tämmöinen esimkerkiksi toimiva tapa:
index.php:
sisältää ennen includettamista pätkän "$turvallisuus = 1;"
uutiset.php
sisältää aivan alussa pätkän
if (!$turvallisuus) exit; - Lauri.
lintuherra kirjoitti:
Mikäs sitten on suositeltu tapa käyttää sessioneita turvalliesti?
Ja tuli toinen turvallisuuteen littyvä asia mieleen.
Sivustoa luetaan index.php:n kautta includettamalla siihen erillaisia tiedostoja, esim. uutiset.php, kayttajat.php. Jos kuitenkin haluan, että uutiset.php:tä ei voi lukea muuta kuin index.php:n kautta niin onko tämmöinen esimkerkiksi toimiva tapa:
index.php:
sisältää ennen includettamista pätkän "$turvallisuus = 1;"
uutiset.php
sisältää aivan alussa pätkän
if (!$turvallisuus) exit;>> Mikäs sitten on suositeltu tapa käyttää sessioneita turvalliesti?
Tallenna sessioniin joitain tietoja käyttäjästä, jotka ovat riittävän yksilöllisiä ja eivät vaihdu kyselyjen aikana. Osa näistä tiedoista on saatavilla SERVER muuttujan takaa: http://fi2.php.net/manual/en/reserved.variables.server.php
Sitten niiden pohjalta vertailet, ovatko tiedot vaihtuneet vai eivät. Hyviä arvoja ovat mm. IP ja selain (user agent).
>> niin onko tämmöinen esimkerkiksi toimiva tapa:
Juurikin tuollainen on oikea tapa. Jotkut tosin määrittelevät definellä ( http://fi2.php.net/manual/en/function.define.php ) tuon arvon, ja tarkastavat onko se haluttu, tyyliin
define("turvallisuus", 1); ja jokaiseen tiedotoon if(!defined("turvallisuus")) die();
Tämä siitä syystä, että jos palvelin on asetettu käyttämään superglobaaleja arvoja, niin tuosta sinun esimerkistäsi pääsisi läpi menemällä osoitteeseen uutiset.php?turvallisuus=1. Mutta PHP 5 eteenpäin tuo asetus on ollut poissa päältä (oletuksena), ja tuskin toimii nyttenkään. Mutta tuo define on siis hieman "turvallisempi", koska ei ole haavoittuvainen palvelimen asetuksista. - lintuherra
Lauri. kirjoitti:
>> Mikäs sitten on suositeltu tapa käyttää sessioneita turvalliesti?
Tallenna sessioniin joitain tietoja käyttäjästä, jotka ovat riittävän yksilöllisiä ja eivät vaihdu kyselyjen aikana. Osa näistä tiedoista on saatavilla SERVER muuttujan takaa: http://fi2.php.net/manual/en/reserved.variables.server.php
Sitten niiden pohjalta vertailet, ovatko tiedot vaihtuneet vai eivät. Hyviä arvoja ovat mm. IP ja selain (user agent).
>> niin onko tämmöinen esimkerkiksi toimiva tapa:
Juurikin tuollainen on oikea tapa. Jotkut tosin määrittelevät definellä ( http://fi2.php.net/manual/en/function.define.php ) tuon arvon, ja tarkastavat onko se haluttu, tyyliin
define("turvallisuus", 1); ja jokaiseen tiedotoon if(!defined("turvallisuus")) die();
Tämä siitä syystä, että jos palvelin on asetettu käyttämään superglobaaleja arvoja, niin tuosta sinun esimerkistäsi pääsisi läpi menemällä osoitteeseen uutiset.php?turvallisuus=1. Mutta PHP 5 eteenpäin tuo asetus on ollut poissa päältä (oletuksena), ja tuskin toimii nyttenkään. Mutta tuo define on siis hieman "turvallisempi", koska ei ole haavoittuvainen palvelimen asetuksista.Kiitos paljon edellisistä, ovat olleet suuresti avuksi. :)
Mutta vielä pieniä tarkennuksia.
Eli tarkoitit, että esimerkiksi sisäänkirjauduttaessa luodaan aina $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];. Ja joka lautauksella katsotaan esim.
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']) exit;
Onko turvallisempaa jos $_SESSION['ip']:n tilalle laitetaan esim. $_SESSION['$_SERVER['REMOTE_PORT']'] jolloin sessionin nimi vaihtuu joka kerta?
Onko myöskään väliä, että onko sessioneita tehty useita? Esim. onko $_SESSION['ip'] ja $_SESSION['selain'] turvallisempaa tarkastaa erikseen kuin luoda yksi $_SESSION['ipselain']?
- Anonyymi
Session avoin lapset, heidän 30 m alue videot, tehdään ystävällisin mieleistä? On syytä muistaa syytelyt Otti poliisin syliin kontaktiin tietokoneella.
Muiden lapset kotiin , tämä on syytä pitää mielessä, touhut syytely naapurit yhteistyö- Anonyymi
Koulut alkaneet näemmä, kun tulee aivovamma-tekstejä.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Orpo räyhää: kansan on muututtava
Orpon mukaan kansa ei elä kokoomuksen kanssa samassa todellisuudessa, ja sen vuoksi kansan on muututtava. Kas kun ei san2663323Muovikassikartelli
Kauppaketjut ovat yhdessä sopineet muovikassin yksikköhinnaksi 59 senttiä. Milloin viranomaiset puuttuvat tähän kartell211843Aidon persun tunnistaa Marinin palvonnasta
Oli kyse sitten Halla-ahosta tai Putinista. Ensimmäisenä aidolle persulle tulee mieleen Marin.241499- 821349
- 1371038
- 81994
Hallintooikeus..
"Asemakaavapäätös pysyy voimassa.Poikkeamista ja rakentamista koskevat luvat hylättiin" kertoo Pyhäjärven Sanomat netti.62809Olen rakastunut
varattuun joka ei eroa. Miten tunteista eroon? Tämä ei ole tavanomaista. On elämäni suuri rakkaus.86756Jos se joskus oli molemminpuolista
niin hyvin me molemmat onnistuttiin pitämään toinen epätietoisena.61687Laita nyt se viesti
Tiedän että haluat tavata. Kirjoitat, pyyhit, kirjoitat... Lähetä se viesti 😗51656