Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Опен Ресурс > Разработчикам > Готовые хаки

Ответ
 
Опции темы Опции просмотра
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #1 06-23-2010, 12:39

При использовании сессии правильным будет подход, когда сеанс авторизации длится до закрытия браузера. По умолчанию оно так и есть.

Но если очень хочется сделать автологин, можно попробовать следующее.

Во-первых, в основных настройках сайта должна быть включена опция «Использовать для авторизации сессии вместо cookies»

Во-вторых надо сделать этот фикс: "Исправление ошибки авторизации при использовании сессий вместо cookies"

Далее, если у вас не используется для вашего сайта отдельная директория для сессий, создайте наравне с корневой директорией сайта отдельную папку. Например, /sessions/ . Это важно, так как если сессии на хостинге хранятся в общей папке (как правило, /tmp), то другие скрипты будут очищать эту папку, в большинстве случаев, по стандартному таймауту (30 минут).

Далее опять открываем файл /include/common.php и перед строкой (она появится после вышеуказанного фикса)

PHP код:
session_name($rcxConfig['session_name']); 
пишем

PHP код:
$session_path $_SERVER['DOCUMENT_ROOT'] . '/../sessions';
session_save_path($session_path);
ini_set('session.gc_maxlifetime', (int)$rcxConfig['session_expire']); // Если разрешена функция ini_set()
session_set_cookie_params((int)$rcxConfig['session_expire']); 
ну, и следим, чтобы папка /sessions/ излишне не разрасталась, подстраивая время сессии.

У вас должна быть разрешена функция ini_set(), иначе параметр session.gc_maxlifetime можно поменять через .htaccess (опять же если разрешено), добавить нужное время в секундах

Цитата:
php_value session.gc_maxlifetime 1440
----

Также, можно сделать еще один незначительный фикс

найти строку

PHP код:
@session_cache_expire($session_cache_expire); 
и поменять ее на

PHP код:
@session_cache_expire($session_cache_expire 60); 
так как время там задается в минутах, а не секундах

Последний раз редактировалось LARK, 06-23-2010 в 14:11


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
ZlydenGL вне форума ZlydenGL
Напильникъ - наше все

Аватар для ZlydenGL

| Цитировать Старый #2 06-23-2010, 13:16

Вот это оперативность!!! Эх, жаль, возможность прибавить репутацию нету Обязательно внедрю, спасибо, LARK!!!

Два вопроса:
1. Получается, что перевод пункта "Время нахождения на сайте (в секундах) перед автоматическим исключением пользователя из системы" неправильный, нужно его дополнить, что он относится только к сессиям, и интервал его отработки - в минутах?

2. Почему вместо обращения к константе XOOPS_ROOT_PATH приходится использовать $_Server?

Последний раз редактировалось ZlydenGL, 06-23-2010 в 17:49
Причина: Слил два сообщения в одно


Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник.
  Сообщения: 777 c 22.09.2008 | Репутация: 92
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #3 06-23-2010, 13:23

1) Он относится к кукам и сессиям, но для сессий без хака это время бесполезно.
Нет в секундах. Просто в session_cache_expire минуты используются

2) Можно и XOOPS_ROOT_PATH это одно и тоже


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
ZlydenGL вне форума ZlydenGL
Напильникъ - наше все

Аватар для ZlydenGL

| Цитировать Старый #4 06-23-2010, 13:28

Третий вопрос для комплекту: разрешение на /sessions вешать 777 или 664 будет достаточно?

Почему спрашиваю - если подойдет и 664 (или вообще 660), то папку /sessions можно будет положить в саму папку сайта. Понятно, что это не столь секурно, но на части хостеров нет возможности на вирте создать папку рядом www или httpdocs.


Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник.
  Сообщения: 777 c 22.09.2008 | Репутация: 92
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #5 06-23-2010, 13:56

760 должно подойти. Не все хостеры разрешают 660 ставить. В корне сайта папку для сессий сделать можно, хотя и не безопасно. В этом случае нужно положить в нее .htaccess с Deny from all


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
ZlydenGL вне форума ZlydenGL
Напильникъ - наше все

Аватар для ZlydenGL

| Цитировать Старый #6 06-23-2010, 14:47

И надеюсь последние 2 вопроса:
1. При переключении с одного режима авторизации на другой пользователям придется повторить процедуру авторизации при входе на сайт?

2. Ты сам бы какой способ порекомендовал для аутентификации (предполагая, что от SQL инъекций код Рони в достаточной степени экранирован)?


Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник.
  Сообщения: 777 c 22.09.2008 | Репутация: 92
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #7 06-23-2010, 15:11

Цитата:
Сообщение от ZlydenGL Посмотреть сообщение
1. При переключении с одного режима авторизации на другой пользователям придется повторить процедуру авторизации при входе на сайт?
придется логиниться заново.

Цитата:
Сообщение от ZlydenGL Посмотреть сообщение
2. Ты сам бы какой способ порекомендовал для аутентификации (предполагая, что от SQL инъекций код Рони в достаточной степени экранирован)?
Все зависит от направленности проекта. Сессии естественно безопаснее. Если есть уверенность что от SQL инъекций портал надежно защищен, то можно и авторизацию на куках оставить. Если сайт связан с денежными транзакциями, например там магазин, то лучше сессии, причем со временем сеанса только до закрытия браузера, плюс добавить в формирование хеша IP и USER AGENT

Последний раз редактировалось LARK, 06-23-2010 в 15:14


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 74.00 Kb. compressed to 68.45 Kb. by saving 5.54 Kb. (7.49%)
Page generated in 0.08269 seconds with 10 queries