Na prihlasenie uivatela pouzivam urcity skript s premennymi, ako zuabranit domu aby tie premenne aj s hodnotami (ak ich web uzivatek ziska nejako...) aby ked ich vypise do URL (akoze mylsim nieco.php?premenna=hodnota) aby takuto hodnotu nezobralo..
..hej este ze.. ja tie hodnoty prenasam cez sessions a chcem aaby sa dali prenasat iba cez sessions a nie cez URL.. dakujem
V přihlašovacím formuláři použij metodu POST.
jj to mam,
prihalsovaci skirpt login.php zavola udaje z formularu a zkontroluje, ak OK tak vytvori session premenne ktore hovoria o tom ze je uzivatel prihlaseny (nejake jeho id. cislo) a vrati ho spat na index.php
ale ja sa pytam ze ked rucne niekto "napadne" stranku index.php s tym ze do URL prida nazvy tych premennych (dajme tomu ze si ich tipol) a do nich da spravne hodnoty (opat dajme tomu ze ich nejak zistil)... tak sa to zacne spravat akokeby bol prihlaseny.. a to nechcem... lebo nepresiel cez ten login.php...
cize?
A používáš důsledně
$_SESSION['proměnná'] a $_POST['proměnná']?
ne, take vobec nepouzivam ako sa to pouziva?
na ziskanie z formularu pouzivam
$HTTP_POST_VARS
na co je $_SESSION['proměnná'] ?
http://us3.php.net/session
"Use of $_SESSION (or $HTTP_SESSION_VARS with PHP 4.0.6 or less) is recommended for improved security and code readability."
hmm.. citam citam ale nerozumiem .. viem si session spravit, zaregistrovat, znicit apod. ale nepouzivam pri tom to $_SESSION to akoze ked ju xcem tu premennu "zavolat" tak najprv musim cez to? (tak ako je to cez $HTTP_POST_VARS ) bo ja len rovno som ich pouzival.. nemozes napisat jednoduchy priklad (ale oboch suborov aj toho kde ju vytvoris aj toho kde ju zavolas, pripadne linky.. (ak by sa dalo tak <b>česke/slovenske</b>/anglicke)
Se session pracuju takto:
Vždy na začátku skriptu misíš session spustit: session_start();
// Vytvoření
$_SESSION['user_id'] = $userid;
//Používání
//funkcí isset() zjistíš, zdali session existuje, viz manuál
if (issset($_SESSION['user_id']))
//ano tato session existuje
$kdojeprihlasen = $_SESSION['user_id'];
else
//ne tato session neexistuje
//Zruseni jedne promenne ze session
unset($_SESSION['user_id']);
// Zrušení všech session
session_destroy();
Jinak $_SESSION je pole a můžeš si ho celé zobrazit, jako každé jiné pole:
print_r($_SESSION);
otazka: preco nemozem pouzit tento sposob ?
<?php
if (!session_is_registered('count')) {
session_register('count');
$count = 1;
} else {
$count++;
}
?>
<p>
Hello visitor, you have seen this page <?php echo $count; ?> times.
</p>
<p>
To continue, <a href="nextpage.php?<?php echo strip_tags(SID); ?>">click
here</a>.
</p>
je to menej bezpecne alebo co?
jeeeeej, uz mi to ide tak ako som xceeeeel vdakaaa :D :D :D
Pre bezpečnosť je dôležité testovať pôvod session premennej, či je to premenná z URL ($_GET[]) , ktorú môže útočník podstrčiť, alebo premenná odoslaná metódou $_POST[]. $HTTP_POST_VARS už nepoužívaj je to zastaralé. Príklad:
<?php
if (isset($_GET['prem'])) {
echo "Premenná pripojená z URL!";
exit;
} elseif (isset($_POST['prem'])) {
echo "OK!";
}
?>