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
1140
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
Suomen markka otettiin käyttöön vuonna 1860
Suomi käytti vuoteen 1840 asti rahayksikkönään rinnakkain Ruotsin riikintaalareita ja Venäjän ruplaa. Tämän jälkeen oli379306"Mä elän vieläkin"
Ikurin turbiini vetäisi taannoin lainabiisin Topin (RIP också) ja kumppaneiden kanssa. Toivottavasti on yläkerrassa kunn333873Yksityinen sektori aiheuttanut Suomen taantuman
Investointien sijasta nostaneet voitot osinkoina omistajille. Ehdotan korjausliikkeenä yksityisen sektorin sosialisoimi832431Pate Mustajärvi on kuollut
Ihan pari tuntia sitten. Että sellaista. https://www.is.fi/viihde/art-2000011715177.html1262426Kaivatullesi viesti ensi vuoteen?
Kerro meneekö naiselle vai miehelle ja vähintään yksi tunniste, esim. kirjain.392234Kylläpä asiat onkin nyt hyvin verrattuna Sannan aikaan
Sannan aikana aähkön alv oli 10%, nyt 25,5%. Ajatelkaa nytkin pörssisähkö on ilmaista, keskellä talvea! Bensan hinta on251935Miten ikinä kelpaisin sulle
Sinä saat niiltä muilta naisilta paljon enemmän, mitä minulta... Tai mihin minä olisin valmis. Enkä edes olisi niin tait151600Edes vitamiinit eivät taanneet loputonta elämää
Nimittäin niistä rahaa itselleen taikonut tohtori siirtyi tuonpuoleiseen.321421- 711257
Esko ja Martina viettävät joulua
Entisen avioparin joulunvietto on ylittänyt IS uutiskynnyksen1711049