Это может звучать прямо, но я не смог найти решение. Я использую последнюю версию CI для создания веб-сайта. Я использую сеансы для хранения информации о доступе для доступа к определенным страницам. Это прекрасно работает в firefox, chrome, safari и версиях IE 9 и ниже. Однако при работе с IE10 сеансы автоматически отменяются при изменении страниц в рамках. Так, например, я на панели инструментов, и я нажимаю ссылку, чтобы взять меня в localhost / sitename / admin / settings, IE10 уничтожает всю информацию о сеансе, и поэтому я выхожу из системы и перенаправляется на страницу входа. Я попытался изменить sess_cookie_name на цисессии (я видел это в других ответах), но это не имело никакого эффекта.
Кто-нибудь еще сталкивается с этой проблемой или знает о рабочем решении?
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Должен был ждать, чтобы опубликовать это 🙂
Найденное решение после более глубокого рытья,
$config['sess_cookie_name'] = 'cisession'; $config['sess_match_useragent'] = FALSE;
Тогда возникает вопрос, является ли sess_match_useragent абсолютно важным для целей безопасности CI, или он может оставаться включенным для всех браузеров?
Это сложный вопрос, чтобы ответить объективно и полностью, поскольку в игре есть много факторов.
Включение пользовательского агента в качестве части проверки сеанса полезно, поскольку оно уменьшает вероятность захвата сеанса. Однако учтите следующее:
Может ли использование sess_match_ip
соответствовать или превышать эффективность sess_match_useragent
с точки зрения безопасности? При сопоставлении IP-адреса злоумышленнику необходимо будет использовать один и тот же IP-адрес, или попытаться подделать его при доступе к вашему серверу. Проверка агента пользователя может быть легко подделана, IP-спуфинг значительно сложнее и, скорее всего, потребуется, чтобы сеть пользователя была эффективной (например, другой человек в той же сети, локальной сети или даже на том же компьютере).
Используете ли вы шифрование SSL для безопасной передачи данных? Если нет, возможно ли, что атака посредника могла бы сделать ваше приложение доступным, независимо от проверки агента пользователя? Поскольку клиент будет общаться с сервером без формы шифрования, все HTTP-запросы могут быть вырваны, обработаны и воспроизведены. Это становится более сложным, если вы включаете проверку IP.
Вам действительно нужно различное поведение на стороне сервера для разных браузеров при работе с безопасностью? Хотя теперь это может показаться несущественным, вполне возможно, что такая проблема может повлиять и на будущие выпуски других браузеров (или будет возвращена в будущих версиях IE, чтобы «исправить»). Является ли инженерное решение подходящим для вашего времени?
Имея это в виду, мое личное мнение состояло бы в том, чтобы полностью исключить его для всех браузеров. Internet Explorer по-прежнему представляет значительную долю рынка браузеров и не пишет в исправлении для каждого браузера, это, похоже, не стоит. Это особенно верно, учитывая, что преимущества безопасности относительно малы в свете более фундаментальных эксплойтов и наличия соответствия IP-адресов.