2015-05-21 6 views
0

Я прочитал много статей и нашел сеанс не может работать без cookie, но попытался и нашел способ, пожалуйста, сообщите об этом по этому поводу?PHP Session может работать без файлов cookie?

этап 1) сначала отключить и очистить данные cookie браузера. Я использую хром.

этап 2) создать страницу one.php, которая имеет следующий код. Я сначала обнаружил пользовательский агент, что ipaddress и мой секретный ключ преобразуют его в MD5 на второй странице для уникального обнаружения пользователей.

$uagent = base64_encode($_SERVER["HTTP_USER_AGENT"]); 
echo $ip = md5($_SERVER["REMOTE_ADDR"]."MYSECRETKEY".$uagent); 
echo "<br>"; 
echo session_id($ip); 
session_start(); 
$_SESSION['data'] = array("name"=>"bbbbbbbb","designation"=>"software_engineer"); 
print_r($_SESSION); 

step3) создать еще одну страницу two.php

$uagent = base64_encode($_SERVER['HTTP_USER_AGENT']); 
echo $ip = md5($_SERVER['REMOTE_ADDR']."MYSECRETKEY".$uagent); 
echo "<br>"; 
echo session_id($ip); 
session_start(); 
print_r($_SESSION); 

я нашел данные о two.php page.so мы можем установить сеанс и захватить данные без печенья. Любая обратная связь я ошибаюсь или это действительно решение?

+0

IP-адреса могут быть подделаны. Если у них есть динамический IP, сброс модема может потерять сессию. Несколько пользователей могут быть на одном IP-адресе, например, в офисном здании или в кампусе колледжа. – Squeegy

+0

К сожалению, это не учитывает нескольких пользователей с одного и того же IP-адреса, например тех, кто использует один и тот же домашний маршрутизатор, или разных пользователей на одном компьютере и т. Д. Вы можете использовать сеансы без файлов cookie, если вы добавите идентификатор сеанса к url (например, 'two.php? sessionid = sdfgsdfgasdfsdgsdfgsdfgsdfg') –

+0

, но он будет работать как цифровая подпись, это безопасно с использованием MD5 или любого алгоритма шифрования. Я знаю, что это не будет работать в таких сетях, как офисы, где использует тот же IP-адрес, иначе MD5 не может быть прочитан или что-либо, что мы добавим со строкой. – bhuvnesh

ответ

0

Это будет работать до тех пор, пока пользовательский агент и удаленный адрес будут одинаковыми. Но вы можете просто захватить в сессию, если вы знаете

  • чей-то публичный IP
  • чей-агента пользователя

Посетитель подает эти данные на каждом сайте он посещает, и не может предотвратить это! Угон - очень простая задача, если посетитель посетил плохой сайт раньше, который сохранил данные.

Это не безопасное решение! Не используйте его!

EDIT: Хорошо, вы должны подделать IP-адрес, который немного усложняет :-) Но в общедоступных сетях проблема сохраняется, могут быть даже столкновения.

+0

, но у нас есть уникальный секретный ключ, захват - проблема, но также возможен захват сеанса. – bhuvnesh

+0

Да, но риск выше. Вам просто нужно подделать IP-адрес (не так просто, но возможно) и пользовательский агент. Нет случайных идентификаторов -> небезопасно! – Richard

Смежные вопросы