Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Naljatilk
HV kasutaja

liitunud: 03.03.2006
|
03.02.2009 22:33:13
Php sessioonid |
|
|
Koostan oma kodulehe jaoks admin-ala ja foorumilaadse asjanduse autenteerimist ega saa sisselogimisel php sessioonidest jagu. Lihtsalt ei saa neid tööle, kuigi olen juba kümme tundi vähemalt lugenud igasugu sellealaseid abimaterjale ja niisama katsetamisega üritanud neid tööle saada. Kõik tundub olevat nii, nagu peab: info saadetakse enne header faile, aga ikkagi ei registreeri see neid ära.
Ma võiksin loomulikult minna kergema vastupanu teed ja kasutada tasuta CMS-i ja foorumit, aga esmalt leidsin, et kogemus on tähtsam, lisaks meeldib kõik oma käe järgi mugavaks muuta. Nüüd on asi juba isiklik ning ma ei anna alla enne, kui olen sellest jagu saanud.
See on siis loga.php fail, mis käivitatakse pärast login-i:
<?php
include 'koodid.php';
$pswrd = (md5('$_POST[pswrd]'));
$usrnm = ("$_POST[usrnm]");
$kasutajaip = ($_SERVER['REMOTE_ADDR']);
$kood = md5($_POST['user'].microtime(true));
$con = mysql_connect("$nmHost","$nmUser","$txPassword");
if (!$con) {die('Could not connect: ' . mysql_error());}
mysql_select_db("raudvara", $con);
$sql_login = "SELECT * FROM andmed WHERE username='$usrnm'";
$salvestatud_andmed = mysql_fetch_array(mysql_query($sql_login));
$salvestatud_pass = $salvestatud_andmed['password'];
$userid = $salvestatud_andmed['id'];
if ($salvestatud_pass != $pswrd) {echo 'Vale parool. Proovi uuesti. <a href="index.html">Tagasi</a>';}
else {
session_start($kood);
$_COOKIE['raudvara'] = $kood;
setcookie('raudvara', $kood, time()+60*30, '/');
$_SESSION[$kood]['userid'] = $userid;
$_SESSION[$kood]['ip'] = $kasutajaip;
$con2 = mysql_connect("$nmHost","$nmUser","$txPassword"); //logib logini
if (!$con2) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("raudvara", $con2);
$sql="INSERT INTO SESS_id (kasutaja, ip) VALUES ('$_POST[usrnm]','$ip_adr')";
if (!mysql_query($sql,$con2)) {die('Error: ' . mysql_error());}
mysql_close($con2);
}
mysql_close($con)
?>
<html>
<head>
<meta http-equiv="refresh" content="0;url=logn.php">
<title>login</title>
</head>
<body>Kontroll</body>
</html> |
Koodid.php on fail, mis sisaldab kõigest viite rida. Sellega probleeme senini ei ole olnud, igaks juhuks toon välja, järsku ei meeldi $_session käsule, kui enne teda kutsutakse lisafaile välja:
<?php
$nmHost = 'host';
$nmUser = 'kasutaja';
$txPassword = 'pass';
?>
|
Ja siis kontroll lehe ülaosas on selline:
<?php
$ip = ($_SERVER['REMOTE_ADDR']);
if (!isset($_SESSION[$_COOKIE['raudvara']]) && $ip==$_SESSION[$_COOKIE['raudvara']]['ip']) {header('Location:login.php');}
?>
<html>
<head><title>login</title></head>
<body>
Kontroll
<?php
include 'sucksess.php';
?>
</body>
</html>
|
Hetkel on probleemid sessioonide juures, sest cookie sain tööle. Väga kena oleks, kui keegi selgitaks, mida ma senini valesti olen teinud. Lisaks on mingisugune kala sees ka kontrollil (viimane kood), sest kuigi sessiooni ei ole loodud, lubab see vabalt jõuda leheni logn.php.
Igasugused soovitused on teretulnud ja kes vajab paremaks arusaamiseks ise käega katsumist, siis seda saab teha aadressil http://raudvara.bplaced.net/forum (Msn ei lase seda lehte linkida, aga senised kogemused on olnud üpriski head, pealegi on tegu ajutise koduga).
Olen selle login-iga mässanud juba 30+ tundi ja täna öösel nägin ma juba unes, kuidas ma peaks neid koode muutma, et asi tööle hakkaks.. Kahjuks asi ei läinud nii, ainult magada ei saanud.
_________________ Vaata pilti |
|
Kommentaarid: 11 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
11 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
03.02.2009 22:54:14
|
|
|
tsitaat: |
saadetakse enne header faile, aga ikkagi ei registreeri see neid ära. |
ei saadeta ju sul on igat jura ennem session_start($kood); ju
see peab olema faili esimene rida.
<?php session_start($kood); |
Näiteks selline kood:
session_start();
function login() {
$_SESSION['login'] = 1;
}
function logout() {
$_SESSION['login'] = 0;
session_destroy();
} |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
Naljatilk
HV kasutaja

liitunud: 03.03.2006
|
03.02.2009 23:43:36
|
|
|
if ($salvestatud_pass != $pswrd) {echo 'Vale parool. Proovi uuesti. <a href="index.html">Tagasi</a>';}
else {
session_start();
function login() {
$_SESSION['login'] = 1;
}
$_COOKIE['raudvara'] = $kood;
setcookie('raudvara', $kood, time()+60*30, '/');
$con2 = mysql_connect("$nmHost","$nmUser","$txPassword"); //logib logini
if (!$con2) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("raudvara", $con2);
$sql="INSERT INTO SESS_id (kasutaja, ip) VALUES ('$_POST[usrnm]','$ip_adr')";
if (!mysql_query($sql,$con2)) {die('Error: ' . mysql_error());}
mysql_close($con2);
} |
Muutsin selliseks, aga endiselt ei tunnista sucksess.php failis, et sessioon on loodud. Selline huvitav mõte tekkis, et järsku on probleem serveris. Zone kahjuks ei lase session_start() funktsiooni kasutada..
On kellelgi veel mõtteid/soovitusi?
_________________ Vaata pilti |
|
Kommentaarid: 11 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
11 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
03.02.2009 23:55:25
|
|
|
Pane session_start(); esimesele reale, mis siin mõistmatut on?
<?php session_start();
if ($salvestatud_pass != $pswrd) {echo 'Vale parool. Proovi uuesti. <a href="index.html">Tagasi</a>';}
else {
function login() {
$_SESSION['login'] = 1;
}
$_COOKIE['raudvara'] = $kood;
setcookie('raudvara', $kood, time()+60*30, '/');
$con2 = mysql_connect("$nmHost","$nmUser","$txPassword"); //logib logini
if (!$con2) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("raudvara", $con2);
$sql="INSERT INTO SESS_id (kasutaja, ip) VALUES ('$_POST[usrnm]','$ip_adr')";
if (!mysql_query($sql,$con2)) {die('Error: ' . mysql_error());}
mysql_close($con2);
} |
Teisel lehel saad lugeda ja muid asju sellega teha nii
<?php session_start();
echo $_SESSION['login'];
if($_SESSION['login']==1){echo "Olen sisse logitud";}
?> |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
e-Thug
HV Guru

liitunud: 26.02.2005
|
03.02.2009 23:57:27
|
|
|
mis soovitusi sul veel vaja on, nagu andrusny juba ütles, siis session start peab olema kohe kõige alguses
<?php
session_start();
muu mudru
?> |
|
|
Kommentaarid: 230 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
205 |
|
tagasi üles |
|
 |
maxorator
HV kasutaja
liitunud: 30.08.2006
|
04.02.2009 00:08:52
|
|
|
Zone tasuta hostingus ei saa sessioone kasutada.
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
04.02.2009 01:50:26
|
|
|
Saab ikka kasutada, aint et tuleb ise teha, huvi pärast proovisin järgi ka ja tulemus:
Näidiskood (testitud ja töötab) üleval http://web.zone.ee/inzinztest/sess.phps
Kasutamise näidis http://web.zone.ee/inzinztest/index.phps
Et jooksmas näha siis vaata http://web.zone.ee/inzinztest/
Esmasel kuvamisel peaks väljastama Array()
Ja peale refreshi peaks kuvama Array ( [test] => oled juba lehte vaadanud ) mis näitab et kõik töötab.
Tuleb meeles pidada teha sessions kaust samasse kausta kus sul sess.php fail on ning rangelt soovitan sinna sessions kausta teha ka .htaccess faili mille sisu on:
deny from all
Ja siis enda koodis sessiooni alustamiseks kutsu välja funci session_start_();
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
04.02.2009 14:50:04
|
|
|
Oot, ma viskasin kiiruga pilgu peale, ma võin küll eksida, kuid sa lihtsalt kirjutad need värgid, mis sesioni lähevad faili aga seda php sessioni sa ei kasuta ju? Kuid sellisel juhul sa kül võid nimetada seda sessioniks, kuid ta ju ikkagi pole see, mis siis , et täidab ja teeb täpselt sama. Session on ikkagi üks kindel php func.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
04.02.2009 16:22:14
|
|
|
No kui see oleks zone tasuta hostis kus on session_start kinni keeratud (ja üldse kogu session extension), siis ainus võimalus saada sessioone kasutada on miskit taolist mis ma tegin:
ise tehtud func mis teeb setcookie, avab sessiooni faili, täidab $_SESSION sisu ja paneb locki peale failile ning peale koodi lõppu kirjutab $_SESSION sisu uuesti faili. Lisaks veel jooksutab 1% juhul sessiooni kausta cleanupi ka.
Sry et ei lugenud mis ja kus täpsemalt, see link jäi kahe silma vahele.
Sellisel juhul pakun et probleem on whitespaces, täpsemalt ftp uploadiga/downloadiga juurde tekkivates reavahetustes failide lõpus peale ?> märke, mis segavad session_start käsul cookiesid panna.
Hetkel seal lehel käies ei tekkinud browserisse mitte ühtegi cookiet igatahes.
Sellisel juhul minupoolne soovitus on muuta loga.php ja üleüldse kõiki teisi faile ka nii, et esimesed read oleks:
<?php
session_start();
include 'koodid.php'; //või mingi muu kood
|
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
Naljatilk
HV kasutaja

liitunud: 03.03.2006
|
05.02.2009 08:20:42
|
|
|
Tänud selgituste eest, muutsin kõik nii, aga hetkel veel tööle ei saanud. Räägin täna koolis informaatika õppejõuga, vaatab, kas ta murrab läbi, milles minu puhul probleem seisneb.
_________________ Vaata pilti |
|
Kommentaarid: 11 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
11 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
05.02.2009 10:24:04
|
|
|
Kui sul seal hetkel suurt midagi salajast ei ole ning ftp kaudu ainult lehe kaustale ligi saab, siis võid privas mulle infi saata ja ma saaks kohe sealsamas uurida ja testida milles probleem on.
Mis siis saab kui kohe algusesse peale <?php rida paned:
error_reporting(E_ALL);
ini_set('display_errors', 1);
Kas siis väljastab mingit lisainfi errorite kohta või endiselt täielik vaikus ?
EDIT:
Uurisin, loga.php saadab cookie välja ilusti ikkagi, mujal lehtedel ei kuvata kuna mujalt pole session starti.
ESITEKS sa pead session_start(); panema IGASSE faili kus tahad $_SESSION muutujaga midagi teha, kaasa arvatud logn.php faili algusesse.
Kui sa ei tee session_start(); siis $_SESSION massiivi üldse ei tehtagi ja kogu kontroll isset($_SESSION[$kood]['user']) on täiesti mõttetu kuna $_SESSION muutujat ei ole olemas.
Lisaks, kas tohib küsida misasi see $kood = md5($_POST['user'].microtime(true)); seal teeb ? Mis eesmärki ta üritab täita ?
Sa oled sessioonidest väääga valesti aru saanud ikka ma vaatan.
See $_SESSION muutuja/massiiv ongi juba ainult selle kasutaja põhine kes sinu lehte vaatab, sa ei pea seal ise leiutama mingeid keerukaid üleliigseid asju et $_SESSION muutujasse tekitaks alam massiivi mille võtmeks on kasutaja id + praegune aeg suure täpsusega, kuna _SESSION massiiv mida sina näed juba ONGI sellise funktsionaalsusega, et on ainult selle ühe kindla kasutaja põhine. Kui mina tulen lehele on minul üks _SESSION massiiv ja kui sina tuled lehele on sinul teine _SESSION massiiv.
Võta ja loe siit kogu info läbi ja siis proovi uuesti, ehk teisel katsel saad hakkama paremini juba http://ee2.php.net/session
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
05.02.2009 10:29:41
|
|
|
inzinz kirjutas: |
Sellisel juhul pakun et probleem on whitespaces, ... juurde tekkivates reavahetustes failide lõpus peale ?> märke, mis segavad session_start käsul cookiesid panna. |
lõpumärgi ?> võib ära jätta, kui php plokk on failis viimane. siis ei teki ka raskesti märgatavaid probleeme sessionitega
nb! kui ftp klient muudab ülekandel faili sisu, siis peab veenduma, et kasutatakse BINARY ülekannet või ftp klient vahetada kiiremas korras mõne normaalsema vastu.
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
Naljatilk
HV kasutaja

liitunud: 03.03.2006
|
11.02.2009 01:06:31
|
|
|
Sain sessioonid tööle, kui on soovi koodile näpud taha saada, saatke PS, ei ole kade.
Praegu jamad md5 hashiga (ja ka sha1 häshiga) - ükskõik, mis parool sisestada on tulemus üks ja see sama, aga arvan, et see on serveri viga. Üldiselt on tegemisi veel küllaga.
Suured tänud kõigile, kes abistasid.
_________________ Vaata pilti |
|
Kommentaarid: 11 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
11 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
11.02.2009 01:16:40
|
|
|
Ehk siis väidad et kui tekitad uue php faili, mis väljastab sha1($_POST['parool']), siis tulemus on alati sama olenemata sisendist ?
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
Naljatilk
HV kasutaja

liitunud: 03.03.2006
|
11.02.2009 16:28:36
|
|
|
Vabandan oma ülbuse pärast, ei olnud serveri poolne viga, ikka see lammas, kes koodi kirjutab..
Mul häshis see koguaeg kirjet $_POST['pswrd'] mitte selle väärtust.. Ehk siis kirjapilt
$pass = md5('$_POST['pswrd']'); //vale
$pass = md5($_POST['pswrd']); //õige
$pass = md5("$_POST['pswrd']"); //õige
|
_________________ Vaata pilti |
|
Kommentaarid: 11 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
11 |
|
tagasi üles |
|
 |
maxorator
HV kasutaja
liitunud: 30.08.2006
|
11.02.2009 20:01:29
|
|
|
Naljatilk kirjutas: |
Vabandan oma ülbuse pärast, ei olnud serveri poolne viga, ikka see lammas, kes koodi kirjutab..
Mul häshis see koguaeg kirjet $_POST['pswrd'] mitte selle väärtust.. Ehk siis kirjapilt
$pass = md5('$_POST['pswrd']'); //vale
$pass = md5($_POST['pswrd']); //õige
$pass = md5("$_POST['pswrd']"); //õige
|
|
PHP ei tee vahet erinevate ülakomade vahel, ainult paaris peavad olema alati ühesugused. Lisaks tuleb arvestada, et erinevad ülakomad välimist paari ei segaks. Seega:
$pass = md5($_POST['pswrd']); // töötav #1
$pass = md5($_POST["pswrd"]); // töötav #2
$pass = md5('$_POST["pswrd"]'); // ei tööta
$pass = md5("$_POST['pswrd']"); // error
$pass = md5('$_POST['pswrd']'); // error
$pass = md5("$_POST["pswrd"]"); // error
|
Kui kasutada WYSIWYG editori siis peaks värvidest kohe ära nägema, kui midagi valesti.
viimati muutis maxorator 12.02.2009 01:07:12, muudetud 2 korda |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
maxorator
HV kasutaja
liitunud: 30.08.2006
|
11.02.2009 22:01:46
|
|
|
Ei ütleks, et erineva tähendusega, pigem on neil väiksed nüansid, mis tavakasutuses väga tunda ei anna. 8)
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
11.02.2009 22:20:02
|
|
|
Kõige hullem "nüanss" on just sellel kahekordsel jutumärgil " Ning see annab tavakasutuses palju tunda, minu käest on mitmeid kordi küsitud miks miskit stiilis
file_put_contents("failinimi", "mingi$imelik$tekst$imelike$separatoritega");
kirjutab faili mingit jama või miks samas stiilis echomine ei anna õiget tulemust.
Põhjuseks see et kahekordse jutumärgi puhul peab $ kasutamisel ettevaatlik olema kui just meelega ei taha stringi sisse muutuja väärtust panna.
Lisaks on tavaliste tekstide kirjutamine " " märkide vahele kulukam php'le kuna ta otsib sealt seest $ märke ja erisüntaksit kui ' ' märkide vahel olles kuvab nii nagu isegi näed (välja arvatud see et stringi sisse ' märgi saamiseks pead selle escapema \ märgiga).
Kui ei ole vaja keset teksti mingit muutuja väärtust nii toppida siis igal juhul soovitan kasutada ühekordseid jutumärke: lihtsam ja grammi võrra kiiremgi.
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002

|
11.02.2009 22:21:46
|
|
|
maxorator, kuule ära aja jama. Vägagi annab tunda igasuguses kasutuses. Kasvõi selles, et sinu eespoolt toodud näited on valed tänu sellele, et neid erinevalt koheldakse.
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
maxorator
HV kasutaja
liitunud: 30.08.2006
|
12.02.2009 01:14:37
|
|
|
Renka kirjutas: |
maxorator, kuule ära aja jama. Vägagi annab tunda igasuguses kasutuses. Kasvõi selles, et sinu eespoolt toodud näited on valed tänu sellele, et neid erinevalt koheldakse. |
Endal ei ole tunda andnud, kuna ei topi muutujaid jutumärkide sisse. Ikka jutumärgi lõpp, punkt, muutuja, punkt, uued jutumärgid. Nii ei pea mõtlema sellisele "quirks mode"-tüüpi probleemidele (analoogia). Kasutan kahekordseid ülakomasid tavaliselt, ühekordseid harva, näiteks siis kui vaja pikk tükk HTMLi sisestada kuhugi (echomise võimalust ei ole), kuna ka HTMLis kasutan kahekorseid ülakomasid.
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
gynterk
HV kasutaja
liitunud: 17.01.2004
|
19.02.2009 15:22:20
|
|
|
maxorator kirjutas: |
Renka kirjutas: |
maxorator, kuule ära aja jama. Vägagi annab tunda igasuguses kasutuses. Kasvõi selles, et sinu eespoolt toodud näited on valed tänu sellele, et neid erinevalt koheldakse. |
Endal ei ole tunda andnud, kuna ei topi muutujaid jutumärkide sisse. Ikka jutumärgi lõpp, punkt, muutuja, punkt, uued jutumärgid. Nii ei pea mõtlema sellisele "quirks mode"-tüüpi probleemidele (analoogia). Kasutan kahekordseid ülakomasid tavaliselt, ühekordseid harva, näiteks siis kui vaja pikk tükk HTMLi sisestada kuhugi (echomise võimalust ei ole), kuna ka HTMLis kasutan kahekorseid ülakomasid. |
# Mis mõte on kirjutada
echo "See tekst on kirjutatud ".$mina." poolt ja on hästi pikk";
# Kui saab kirjutada
echo "See tekst on kirjutatud $mina poolt ja on hästi pikk";
# Single-quotesid on mugav kasutada siis, kui double-quotesid stripida ei viitsi.
# Veel on erinevus nendes kahes ka.
echo '\n';
echo "\n";
|
Ja üldiselt mingisugust enda üllitatud sessionvidinat ma kasutada ei soovita, sest see mõjub turvalisusele väga tõsiselt. Kui server ei luba session_start(), siis tuleb majutuse eest papp välja käia.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
19.02.2009 20:23:11
|
|
|
gynterk, enne kui niisama lahmima hakkad huupi, esmalt ikka uuri kuidas php sessioon töötab ja veendud et mu tehtud asi funktsioneerib samamoodi, see ei ole mingi huupi asi algaja koodija poolt Ning ei pea mingit pappi välja käima majutuse eest kui tahad natuke testida koodimist.
Php samamoodi kirjutab $_SESSION muutuja sisu serialized stringina kuskile kausta requesti lõpus (defaultina kõigile kättesaadavasse /tmp kausta), failinimeks on sess_{sessiooni_id}, kogu requesti ajal hoitakse fail lockituna, requesti lõpus kustutatakse liiga vanad sessioonid.
Ning php sessioone saad samamoodi suunata kuskile teise kausta.
Ainus vahe on minu variandiga see, et kuna session extension on seal välja lülitatud, siis $_SESSION ei ole superglobal ja selle kasutamiseks peab funktsioonide algusesse kirjutama global $_SESSION;
Seega ehk selgitad kusotsast antud asi on vähem turvaline kui php enda sessioon ? Loe kindlasti ka rida kus ma tungivalt soovitasin sessiooni kausta teha .htaccess mille sisuks on "deny from all" et keegi sessioonifaile näperdada ei saaks.
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
gynterk
HV kasutaja
liitunud: 17.01.2004
|
20.02.2009 14:53:09
|
|
|
Kõik mis ei ole väljaspool docrooti on ebaturvaline.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
 |
DoS
HV veteran

liitunud: 19.08.2002
|
20.02.2009 20:47:46
|
|
|
gynterk kirjutas: |
Kõik mis ei ole väljaspool docrooti on ebaturvaline. |
Järelikult et siis kõik, mis on väljaspool docrooti on väga turvaline? Tead ma ei soovita sul igaks juhuks koduuksest ka välja astuda, sest äkki keegi annab kurikaga vastu pead, ebaturvaline lihtsalt ju. Tegelikult kui järele mõelda, siis ei soovita kodus ka olla, äkki lendab granaat korstnast sisse või maandub B747 läbi akna. Ja kas php sessioonid ei olegi siis kellegi "enda üllitatud", vaid jumalik jõud on need teie ja meie käsutusse andnud, et neid kasutades on turvalisus garanteeritud?
Loomulikult, et tuleb endale teadvustada, millal ja mis turvaohud võivad eksisteerida ja sellest vastavad järeldused teha, aga üle ei maksa nüüd ka pingutada.
|
|
Kommentaarid: 50 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
47 |
|
tagasi üles |
|
 |
|