сессионный вопрос с виртуальным хостом - PullRequest
2 голосов
/ 13 июля 2010

все! У меня есть вопрос о сессиях, надеюсь, кто-то может мне помочь. У меня есть тестовый сервер Apache, который использует виртуальные хосты для http и https. Я поместил следующие файлы в мой https, и он работает:

mytest.php:

// this starts the session
session_start();
// this sets variables in the session
$_SESSION['color']='red';
$_SESSION['size'] ='small';
$_SESSION['shape']='round';
echo "Done";

mytest2.php:

// this starts the session 
session_start(); 
// echo variable from the session, we set this on our other page 
echo "Our color value is ".$_SESSION['color']; 
echo "Our size value is ".$_SESSION['size']; 
echo "Our shape value is ".$_SESSION['shape']; 

Но это не работает, когда я просматриваю копию в http.

phpinfo () в обоих одинаковы:

session
Session Support  enabled
Registered save handlers  files user sqlite
Registered serializer handlers  php php_binary wddx

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure On On
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 1

Ответы [ 2 ]

1 голос
/ 13 июля 2010

Как уже было сказано, возможно, это из-за того, что вы используете безопасные куки.

Обратите внимание, что если вы не используете безопасные куки, вы должны быть осторожны в логике своего приложения, чтобыобеспечить его безопасность.Можно перейти с HTTPS на HTTP, но тогда вам следует отказаться от сеанса HTTPS.В противном случае злоумышленник может получить cookie-файл из HTTP-соединения и использовать его через HTTPS-соединение, делая вид, что аутентифицирован как законный пользователь.

0 голосов
/ 13 июля 2010

Проблема заключается в следующем:

session.cookie_secure On On

Если файл cookie является безопасным файлом cookie сеанса, он будет отправлен только через https клиентом.

Измените эту настройку ini или позвоните session_set_cookie_params до session_start и укажите, что вам не нужен безопасный cookie, например ::

session_set_cookie_params(0, '/', "example.com", false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...