Mielessäni heräsi kysymys, että milla tavalla voidaan heittaa käyttäjä takaisin sivulle, jolta tämä lähti, esimerkiksi suoritettaessa jokin tapahtuma (kuten kirjautuminen). Siis että kaikki osoiterivillä olleet muuttujat yms ovat myös samat. php.netissä oli tuo $_SERVER['HTTP_REFERER'] mutta siinä mainittiin ettei tuo ole kovin varma tapa. Onko tähän siis muita keinoja vai pitääkö käyttää tuota HTTP_REFERERiä?
Tuohan olisi ihan kelpo tapa (http_referer on siis täysin sama, joskin vanha tapa kuin $_SERVER['HTTP_REFERER'] ), paitsi että esim. selaimista voi kytkeä tuon asetuksen pois, jolloin homma ei toimi.
Lebe80 kirjoitti:
Tuohan olisi ihan kelpo tapa (http_referer on siis täysin sama, joskin vanha tapa kuin $_SERVER['HTTP_REFERER'] ), paitsi että esim. selaimista voi kytkeä tuon asetuksen pois, jolloin homma ei toimi.
Se siinä lähinnä mietityttikin kun tuon yhteydessä mainittiin että tuon pystyy kääntämään selaimesta pois, tai muokkamaan sitä. Sen takia lähinnä kyselin onko siihen jotain toista tapaa.
Tallennat sesssioon/muualle aina kun lataa sivun?
Tai sitten sivun osoitteen voi kuljettaa piilotetussa formin kentässä kirjautumisen mukana, jolloin se ainakin tulee mukaan kekseistä ja sessioista (jotka myös toisinaan kulkevat kekseissä) riippumatta. Siis kirjautumisformia luodessasi lisäät siihen kentän:
<input name="oso" type="hidden" value="<?php echo $osoite; ?>" />
Muistaakseni pyydetyn sivun osoite löytyy muuttujasta $_SERVER['REQUEST_URI']
. Kirjautumisesta palautat sitten henkilön takaisin:
header("Location: ".$_POST['oso']);
Kiitoskia suuresti, enköhän näillä eväillä onnistu.
Metabolixin tapaa voi tällaisessa käyttää ihan hyvin, mutta se on helppo väärentää, joten missään salasanakyselyformeissa tms. vastaavissa ei tuota kannata käyttää.
miiro, mitä ihmeen merkitystä sillä on, vaikka joku haluaisikin heittää itsensä väärälle sivulle? Nythän oli ilmeisesti tarkoituksena, että kirjautuja pääsisi jatkamaan samalta sivulta eikä joutuisi aina etusivulle. Varmaankin jotakuta kiinnostaa hirvittävästi hankkia itselleen siirto jonnekin muualle, kun samaan tulokseen pääsee kirjoittamalla kaipaamansa osoitteen osoiteriville.
jep, salasanalla suojatuissa sivuissahan salasana tarkistetaan joka sivulla, ei pelkästään kirjautumisen jälkeen.
Jos siis joku yrittää siirtää itsensä suoraan "salaisille sivuille" käyttäjä ohjataan kirjautumissivulle.
Nyt kun päästiin aiheeseen niin mitäpä jos tarkistaa vain, että sessio on asetettu?
tsuriga kirjoitti:
mitäpä jos tarkistaa vain, että sessio on asetettu?
Niin, silloin voi päästä vanhallakin salasanalla/käyttäjätunnuksella vahingossa, jos selaimeen on jäänyt tietoa vanhentuneesta sessiosta.
Sivusto on yhtä turvallinen kuin sen heikoin lenkki.
Olettaen, että käyttäjä on muistanut kirjautua ulos, eikö tämä vaatisi yht'aikaisen virheellisen toiminnan selaimelta sekä palvelimelta? Sessiota ei löytyisi kuitenkaan enää palvelimelta. Mikäli taasen käyttäjä on vain sulkenut selaimen, on myös mahdollista, että selain sisältäisikin vielä tuon sessio-id:n kertovan keksin, jolloin päästäisiin taas kirjautumaan vanhoilla. Eli, jos salasanatarkistus löytyy aina, täytyy tapahtua sessiokeksin tietojen tuhoamisvirhe. Jos taas tarkistetaan vain session olemassaolo, täytyy tapahtua sessiokeksin tuhoamisvirhe. Ongelmaahan esiintyy lähinnä noilla julkisilla päätteillä, joissa kuitenkin on käytössä joku valtavirtaselain (joka tuhoaa sessiokeksit selaimen sulkemisella), mikä taas vähentää riskiä. Lisäksi seuraavan käyttäjän tulisi tietää, millä sivuilla edellinen on käynyt / surffailla niille vahingossa. Meniköhän tämä nyt oikein näin aamusta?
Paitsi jos tapauksessa käyttäjä ei aikoisikaan kirjautua ulos, vaan ylläpito pakottaisi (esim. bannit) käyttäjän ulos. Tällöin pelkkien sessioiden tarkistus antaisi käyttäjän jatkaa sivujen selailua.
Jos ylläpito pakottaa käyttäjän ulos niin eikös session voisi tuhota siinä samalla?:)
tsuriga kirjoitti:
Jos ylläpito pakottaa käyttäjän ulos niin eikös session voisi tuhota siinä samalla?:)
Riippuu vain ja ainoastaan tekniikasta.
Mielestäni ei ole kuitenkaan yhtään yliampuvaa kuitenkaan tarkistaa salasanan oikeellisuus salasanaa-vaativilla sivustoilla.
Ai juu, en tainnut oikein huolella lukea :)
Taisipa selvitä syykin, että miksi veikkauksen sivut nakkaavat 30 minuutin jälkeen ulos.
Kylläpäs tämä Ohjelmointiputkan sivujen päivitys-funktio (siis selaimen 'päivitä') onkin hienosti toteutettu. Omilla sivuilla, kun sivunpäivitystä suorittaa, niin mokoma nakkaa aina takaisin index.php:n asti. Täällä sivu pysyy samana vaikka kuinka nylkyttäisi refreshiä. Mitenhän se on tehty..?
Ei siihen mitään erityistä tarvita. Oletko toteuttanut omat sivusi jotenkin huonosti? Ovatko ne .tk:n, .urli.netin, tms. tyyliin kehyksien sisällä niin että näet aina osoiterivillä saman osoitteen?
Njet.
Ihan kotosalla nakuttelen niitä. Vuoroin osoitteena on http://localhost/sivu/index.php ja välillä sitten http://localhost/sivu/painoindeksi/senkinsika.
Itse indexissä kyllä todellakin määritellään framet, joista alemmassa esitetään kulloinenkin sivu, kun yläosa taasen on jätetty navigointia varten. Huonosti ne varmasti on toteutettu, kun eivät toimi hienosti.
HellCome kirjoitti:
Itse indexissä kyllä todellakin määritellään framet
Syyllinen löyty. Nakkaa framet pois, niin ongelma korjaantuu itsestään.
Eijeijei! Sehän olisi käytännöllistä..
..
....
hmm......
.. mutta http://www.iichan.net osoitteessa kyseinen päivittäminen onnistuu - ja muistaapa vielä paikkansa sivulla, eli ei palaa sivun yläosaan. Mmmmielenkiintoista...
Kun itse tuossa olen tehnyt frametekniikalla sivut: http://kokko.web.cern.ch/kokko/ ja olen jossain alisivulla niin ei se minuakaan heitä etusivulle kun painan päivitä-nappulaa. Taitaa se vika olla jossain muualla kuin kehyksissä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.