|
|
|
| открыта два окна, у одного одно имя сессии у другого другое, так? можно ли... вернее сложно ли зная имя сессии первого окна, сделать так чтоб имя второго стало таким же как и у первого? т.е. не просто допустим передать через гет что мол сид=тому-то, а в теле страницы допустим вывести SESS_ID и чтоб показало имя первого окна?
попрос по сути касаеться безопасности доступа.
надеюсь понятно изъяснился )) | |
|
|
|
|
|
|
|
для: localGhost
(17.02.2005 в 06:34)
| | Хм... вообще-то SID сессий часто автоматически передаётся через cookie и для одного посетителя остаётся постоянным, сколько бы страниц он не открыл. Но можно явно указывать идентификатор сессии при помощи функции session_name
<?php
$sid = session_name("WebSession");
session_start();
?>
|
Только вопрос опять упирается как передавать это имя от странице к странице, если через cookie, то это вроде как и без ручного вмешательства происходит... | |
|
|
|
|
|
|
|
для: cheops
(17.02.2005 в 07:34)
| | я собственно к чему этот вопрос задал: просто тут думал как можно отсечь несанкционированный доступ, и пришла в голову следующая идея: ведь для каждого открытого окна браузера сид будет уникальным, значит есть в сессии переменная допутим check, в нее мы ложим (если еще не положили) зашифрованное имя текущей сессии, далее при переходе на следующую страницу, мы расшифровываем эту переменную и сверяем ее с настоящим именем сессии окна. Если все происходит в одном и том же окне, то значения будут равны... а если в разных окнах.. тут начинаються вопросы....... можно ли это все будет подделать..... | |
|
|
|
|
|
|
|
для: localGhost
(17.02.2005 в 07:47)
| | Хм... так зачем что-то шифровать, если имя сессии уникально и живёт она не долго, после некоторого времени требуется повторная идентификация. Если сессия крадётся http://www.softtime.ru/info/articlephp.php?id_article=36, то она попадет злоумышленику вместе с шифрованным значением, поэтому мне кажется здесь ничего шифрование не даст... | |
|
|
|
|
|
|
|
для: cheops
(17.02.2005 в 08:23)
| | >то она попадет злоумышленику вместе с шифрованным значением,
>поэтому мне кажется здесь ничего шифрование не даст...
если злоумышленик крадет куку где прописано имя сессии до он получает к ней доступ.. так... но можно ли определить допустим что открыто два разных окна браузера но обращение идет к одной сессии? | |
|
|
|
|
|
|
|
для: localGhost
(17.02.2005 в 08:48)
| | Число открытых окон наверное не получится проконтролировать... | |
|
|
|
|
|
|
|
для: cheops
(17.02.2005 в 08:58)
| | а если пасти по ip адресам: допустим контролировать айпи с которым пользователь выходит в инет, но тут надо получаеться проверять: вдруг это допустим локальная сеть и злоумышленик сидит на соседнем компе... тогда айпи адреса будут одинаковые... но ведь внутренние адреса локальной сети буду разные... как их определить? | |
|
|
|
|
|
|
|
для: localGhost
(17.02.2005 в 09:07)
| | ну хорошо, определилось, что сессию увели и под ней сидят два (а может и больше) человека. Так какие по твоему действия должны произойти если это определится ? Всем сразу закрыть доступ ? Или что ? | |
|
|
|
|
|
|
|
для: Valeri
(17.02.2005 в 10:00)
| | при авторизации пользователя в сессию кладем зашифрованную строчку состоящую из ip адреса и имени сессии (для верности), и потом при загрузке страниц просто проверяем будет ли совпадать расшифрованные айпи адреса и действительные адреса пользователя. Если не будут - тогда перенапрявляем на страницу авторизации или просто закрываем доступ... кому как нравиться.. Т.е. пользователь который добросовестно авторизовался будет спокойно работать дальше, а тот кто спер сессию отравиться на три русских буквы.... | |
|
|
|
|
|
|
|
для: localGhost
(17.02.2005 в 10:09)
| | тогда к чему проверять сколько открыто окон, раз идет привязка по айпи, не совпало при проверки и отправился чел туда куда его пошлешь :) | |
|
|
|
|
|
|
|
для: Valeri
(17.02.2005 в 10:54)
| | да нет... про кол-во открытых окон речь не шла... я наверно неправильно выразился.. речь шла о том чтобы определить ваабще был ли доступ несанкционированный... (просто привязал неудчно к кол-ву окон)..... но кажеться все таки выход нашел...
НО: можно ли подделать айпи?
и еще: как все таки определить айпи если комп в сети локальной включен..... | |
|
|
|
|
|
|
|
для: localGhost
(17.02.2005 в 11:02)
| | IP-адрес тоже можно подделать, но до этого вряд ли дойдёт... предложенный вариант нормальный, только не стоит жёстко привязываться к IP-адресу, так как человек может выходить из разных точек или провайдер может назначать различные IP-адреса... | |
|
|
|
|
|
|
|
для: cheops
(17.02.2005 в 18:49)
| | так ip будет записываться на момент авторизации и проверяться в течении текущей сессии...... не думаю что пока те 10 - 20 мин. пользователь работает в системе вдруг резко измениться айпи......
З.Ы. так как определить какой айпи у пользователя внутри локальной сети?
З.З.Ы. и еще: как определить айпи определенного домена? | |
|
|
|
|
|
|
|
для: localGhost
(18.02.2005 в 03:18)
| | >так как определить какой айпи у пользователя внутри локальной сети?
1) IP-адрес пользователя в локальной сети можно узнать из переменной окружения HTTP_X_FORWARDED_FOR (только не каждый брендмауэр выдаёт эту информацию)
<?php
// Если подсеть доступна, извлекаем её
$forward = getenv(HTTP_X_FORWARDED_FOR);
?>
|
>и еще: как определить айпи определенного домена?
2) Для этого предназначена функция gethostbyname
<?php
$ip = gethostbyname('www.softtime.ru');
echo $ip;
?>
|
| |
|
|
|