старт сессия что это

Зачем бизнесу стратегические сессии и как их проводить

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

Я вывела формулу идеального для меня сценария стратегической сессии, которой хочу поделиться. Вы сможете трансформировать ее под свои задачи.

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

Я люблю цитату: «Когда корабль не знает, к какой пристани держит путь, для него ни один ветер не будет попутным», — на мой взгляд, она максимально точно отражает важность стратегической сессии и для среднего бизнеса, и для крупных игроков рынка.

Чаще всего стратегические сессии решают следующие задачи:

Стратсессия — ежегодное собрание топ-менеджеров. Сейчас обычно проводят две-три встречи в год, поскольку может быть много повесток по разным направлениям.

Что нужно для подготовки

К стратегической сессии нужно готовиться заранее. Изучить рынок и внутренние документы, обсудить ожидания и цели будущей стратсессии, чтобы понять, какой список участников нам потребуется.

Это не всегда только руководители компании и топ-менеджмент. Для работы над видением в крупном бизнесе мы приглашаем акционеров. А вот для обсуждения миссии и ценностей часто собирают еще и ключевых сотрудников и менеджеров среднего звена. Ведь они будут транслировать эти ценности: на внешний рынок и внутри компании — подчиненным.

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

Следующий шаг — продумать сценарий сессии и инструменты работы, чтобы вовлечь всех участников и получить максимальный результат от стратегической сессии.

Кроме того, надо подумать, как структурировать полученные во время сессии результаты. Это может быть, к примеру, Google-документ или презентация.

Место проведения стратсессии должно быть вырвано из контекста рабочей обстановки — это позволит посмотреть за рамки привычных методов работы.

Сейчас многие компании готовы проводить стратегические сессии онлайн. Это требует дополнительной подготовки и инструментария. Онлайн-формат хорош для малых и средних бизнесов, потому что он дешевле. Следует позаботиться о качестве связи и о том, чтобы всем участникам встречи было комфортно.

Запланировать нужно и постсессионные мероприятия, которые помогут понять, двигаетесь ли вы в выбранном направлении.

Мой опыт работы на стратсессиях

Мы — индустриальная компания с выделенным сбытовым подразделением. Успешно реализовали стратегию интегрированного роста, добавили в портфель новое производственное предприятие.

Основная цель на данный момент — удержать долю домашнего рынка. Мы ее не отдаем, а сохраняем позиции. Глобальная задача: приросты в объемах реализации. У нас есть свободная производственная мощность.

Задача на стратсессию может быть такой — сформулировать стратегическую цель и разработать направления для формирования стратегии развития.

На старте я рассказываю свое видение рынка, даю независимый взгляд — что мне удалось найти в открытых источниках. Дальше я спрашиваю, к чему мы хотим прийти через энное количество лет.

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

Обязательные пункты в сценарии:

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

Как модератору вывести на дискуссию команду? Что конкретно сделать?

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

Общие — что хорошо, что плохо?

Совет: до стратсессии попросите сотрудников зафиксировать на стикерах или в анонимной Google-форме по пять плюсов и по пять минусов компании. Задача на этом этапе — разговорить людей.

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

Дальше переходим к пяти главным направлениям — клиенты, продукты, сотрудники, менеджмент, процессы.

В каждом из этих направлений задаем не больше 10 вопросов. Например, по блоку «Клиенты» можно спросить, что прирастает: количество клиентов, средний чек, оборот или прибыль? В блоке «Продукты»: на какой стадии жизненного цикла находятся продукты?

Выбираем вопросы для обсуждения в зависимости от цели стратсессии и задач.

Категоризируем находки, которые мы получили с помощью вопросов, по трем группам:

— количественные показатели;
— качественные показатели;
— организационные показатели.

Инструментарий, который мы будем использовать, зависит от того, с кем работаем. Если это креативные люди (сотрудники рекламных агентств, например), можем обойтись стикерами, ножницами и карандашами. Если крупная корпорация, стоит присмотреться к традиционным форматам, но постараться вывести из шаблонного мышления, за грани привычной парадигмы.

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

«Те, кто не учится на своих ошибках, обречены повторять их», — считал философ Джордж Сантаяна, и я с ним полностью согласна.

1. Не готовиться. Есть стереотип: «Я профессионал, я разберусь на месте». Так не работает. Да, вы, возможно, проведете стратсессию, но результаты будут не столь эффективны, насколько могли бы. Всегда прописывайте сценарий и альтернативные варианты развития событий.

2. Уходить в обтекаемые дискуссии. Начинать обсуждение с самого сложного: с миссии компании, видения. Задача модератора — разогреть команду, подвести к сложному вопросу. Начинайте с простого вопроса, который легко решить, а уже где-то к середине встречи переходите к моментам, которые требуют долгих обсуждений.

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

3. Слабая цель. Ставьте амбициозные цели и не путайте их с задачами. Пример — сформулируйте цель так: «Войти в топ-3 лидеров рынка», задача при этом — заработать 1 000 000 долларов.

4. Нет ожиданий от стратсессии. Ключевая ошибка — когда не знаешь, чего от тебя ожидают, трудно привести к нужному результату. На входе интервьюируйте основных участников, чего они ожидают от проводимой стратсессии.

5. Не даем высказаться всем. Если мы вовлекаем в дискуссии только топов, то можем получить очень односторонние и однобокие выводы по заданной теме стратсессии и не те результаты, которых ожидали. Спрашивайте всех, кто стоит ниже по иерархии.

И еще одна ошибка, которая касается модераторов, — нельзя отдавать свою роль никому другому. Наша энергия должна уходить ровным счетом на то, чтобы провести сессию от начала до конца и прийти к результату, который мы и собственник бизнеса ожидаем.

Важно:

→ Стратегическая сессия — работающий инструмент для любого бизнеса
Начните с мини-стратсессии по какой-то простой задаче. Посмотрите, как проходит командная работа. Выведите для себя и своей команды алгоритмы, как это работает и к каким результатам вы пришли.

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

→ Подбирайте команду стратсессии под задачу
Команда может быть не статичной, если сессия разбивается на несколько встреч. Такие гиганты, как Coca-Cola или Mars, на неделю вывозят сотрудников в другие страны и проводят ряд сессий в зависимости от того, какой на сегодня фокус.

→ Привлекайте внешних модераторов, особенно на первых сессиях
Все зависит от компании: в некоторых горизонтальных компаниях, где все в иерархии распределены, стратсессию может проводить кто-то из топов. Если вы считаете, что вам нужен внешний модератор, — это тоже решение.

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

Заключение

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

Источник

«Стратсессия» — полезный инструмент, а не потраченное время. Что делать, если у вас не так

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

HR-директор Студии Олега Чулакова

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

HR-директор Студии Олега Чулакова Анна Ганичева рассказывает обо всех нюансах стратегических сессий и делится опытом недавно проведенного мероприятия.

Что такое стратегическая сессия

Стратегическая сессия — это совещание высшего руководства и ключевых сотрудников, где принимаются важные для компании решения относительно рынков, клиентов, партнеров, направлений развития и бизнес-модели.

Цель стратегической сессии

Тут все индивидуально, у каждой компании она своя. Чаще всего цель — принятие решения о развитии организации. Это и вопросы, связанные с конкретными проблемами, и генерация идей на будущее, и выбор новых направлений развития.

Для своей стратегической сессии мы обозначили следующие цели как приоритетные:

Признаки того, что пора провести сессию

Как правило, встречаются такие факторы:

Кто участвует

Заказчиком всегда выступает собственник компании. Обычно он и определяет состав участников. Важно, чтобы соблюдался принцип охвата всех стратегически важных направлений организации.

Кто, как правило, присутствует на сессии:

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

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

Кто должен вести стратегическую сессию

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

Это представитель третьей стороны, который не предлагает конкретные решения, а помогает участникам сессии выработать их самостоятельно в рамках отведенного времени. Отдать функцию фасилитатора собственнику или кому-то из остальных — идея провальная. Исполнять роль арбитра и при этом полноценно участвовать в обсуждении не получится.

На что мы обращали внимание при просмотре портфолио:

Подготовка к стратегической сессии

Сначала фасилитатор задает вопрос собственнику: «Что вы хотите получить в результате сессии?» В нашем случае озвучили задачу по выработке стратегической цели на три года. Затем выделили три блока:

Всем руководителям предложили проработать их для составления плана реализации стратегии. После этого фасилитатор провела анонимный онлайн-опрос участников предстоящей сессии, чтобы понять видение по поводу:

После этого создали сценарий мероприятия, который финально согласовывался с Олегом.

Организационные вопросы

Чтобы сессия прошла комфортно и продуктивно, мы соблюдали несколько правил:

Что происходит на стратегической сессии

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

Работа поделилась на несколько этапов:

По этим этапам прорабатывались все три блока:

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

На что обращать внимание во время сессии

Что происходит после сессии

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

Мы уже начали реализовывать следующее:

Основные выводы

Что мы отметили для себя по итогам:

Как достичь максимума

Фото на обложке: Shutterstock/Peshkova
Изображения в тексте предоставлены автором

Источник

Стратегическая сессия: от А до Я

В статье представлены ключевые моменты, на которые стоит обратить внимание тем, кто планирует проводить стратегическую (или проектную) сессию.

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

Стратегическая сессия — это форма групповой работы, направленная на совместную разработку стратегически-значимых решений организации, с участием ключевых руководителей компании.

Цели стратегических сессий:

· Разработка стратегии компании или значимого проекта.

· Поиск и проработка решения для выхода из трудной ситуации (случившейся или ожидаемой).

· Обеспечение единого видения относительно ситуации, принимаемых решений, планов (случаи, когда стратегическая сессия прежде всего преследует цель командообразования).

· Приращение знаний о каком-либо вопросе или изменение отношения к какой-либо теме (это случаи, когда стратсессия связана с учебными или пропагандистскими целями).

Ниже представлены примеры целей некоторых уже проведенных конкретных стратегических сессий (словами заказчика с небольшой редакцией автора статьи).

Результатами стратсессий обычно являются:

· Проработанные решения и планы.

· Трансляция важной информации или идей (участники «прониклись» идеями).

· Единое видение и командный дух.

· Новые идеи и альтернативные стратегии.

Стратегической сессией, как правило, управляет модератор, используя, соответственно, методы модерации и фасилитации. От профессионализма этого человека зависит то, насколько успешна будет работа всей группы. Так как в стратегических сессиях обычно принимают участие руководители и эксперты, время которых стоит довольно дорого, целесообразно привлекать для роли модератора-фасилитатора профессионала. В противном случае, стратсессия может превратиться в «Съезд народных депутатов», многоголосье, «переливание из пустого в порожнее», не ведущее к единому видению и решению задачи.

Модерация отличается от фасилитации тем, что в ней имеется конкретный четкий алгоритм работы группы. А фасилитация — это скорее набор различных методов групповой работы, скомпонованных по усмотрению ведущего, какого-либо жесткого универсального сценария нет.

Почему важен именно профессиональный модератор, фасилитатор (ведь можно назначить кого-то из своих руководителей или экспертов для координации работы группы)? Приведу основные аргументы:

Вот пример фразы руководителя компании, для которой я проводила стратегическую сессию: «Почему мы сами не можем, работая вместе (на совещаниях, например), достигнуть таких же результатов?! Люди те же, времени столько же, изначальные проблемы и задачи аналогичные, а результат совместной работы совсем другой.»

Чтобы оценить значимость привлечения профессионала, предлагаю посмотреть на примеры целей, приведенные в этой статье выше. Если Вы чувствуете уверенность, что могли бы обеспечить результат по этим целям, например в течение 1 рабочего дня, возможно, экспертный ведущий Вам, правда, не нужен. Но, как правило, чтобы уложиться в ограниченное время и обеспечить результат с требуемым качеством, без соответствующего эксперта не обойтись.

Важные факторы, влияющие на успех стратегической сессии:

Примерные этапы проведения стратегической сессии:

Наиболее распространенные сложности при проведении стратегических сессий:

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

Выбрать модератора или фасилитатора не сложно — смотрите на опыт и инструментарий, которым пользуется эксперт. Профессионалов на рынке не так много, но достаточно, для того, чтобы найти «своего человека».

Несколько советов, как выбрать ведущего стратегической сессии:

Чтобы на этапе выбора модератора-фасилитатора продиагностировать его потенциальную способность быть «серым кардиналом», а не «звездой», обратите внимание, как взаимодействует с вами эксперт на переговорах. Сообщите о любой проблеме, волнующей Вас, и посмотрите реакцию потенциального ведущего. Занимается ли он, в ходе беседы, самопозиционированием (не проявил ли себя как нарцисс? — явление часто встречающееся среди тех, кто выбирает профессию «рулить группами людей»)? Или волшебным образом, незаметно для Вас, этот человек помог продвинуться в понимании и решении проблемы.

Не важно, кого вы привлекаете — крупную компанию-подрядчика или фриланса, который соберет для вас команду ведущих самостоятельно. Смотрите на конкретного человека-исполнителя, а не на брэнд и регалии компании.

Ключевые рекомендации по взаимодействию заказчика и исполнителя (провайдера) при подготовке стратегических сессий:

1. Убедиться, что исполнитель понимает контекст, почему возникла потребность в стратсессии, какие актуальные задачи стоят перед компанией, как задача, проблема стратсессии решалась раньше. Описать профиль участников, их отношение к теме стратсессии, специфику личностную и профессиональную.

2. Согласовать цели и задачи стратсессии.

3. Согласовать логистику стратсессии (регламент работы, кофе-брейки, обеды перемещения, обеспечение материалами — кто, когда, куда, с помощью чего, что делает). Часто на логистические задачи привлекается третья компания, хорошо, если эти два исполнителя будут понимать задачи друг друга, их работа будет согласована между собой.

4. Согласовать требования к помещениям или дать исполнителю детальное описание имеющихся помещений, убедиться, что они подходят. Как бы ни казалось это банальным, иногда помещение может разрушить все планы модератора.

Например, мы планировали дилерскую конференцию с элементами модерации для крупной автомобильной компании. Нам дали информацию о помещениях, на фото были просторные залы, в каждом из которых могли свободно разместиться по 2 группы для работы. Но на месте оказалось, что залы маленькие (раза в 3 меньше, чем мы ожидали), столы двух групп стоят вплотную друг к другу. Пришлось оперативно менять формат работы, объединять группы в одну большую на каждой площадке, менять сценарий, давать новые инструкции всем тренерам.

5. Обеспечить встречу провайдера с внутренним заказчиком (скорее всего это первое лицо) для согласования целей и сценария стратсессии и обеспечения поддержки. Плюс, как правило, полезны встречи с ключевыми руководителями перед стратегической сессией — обсудить цели стратсессии, их видение.

6. Согласовать формат отчетности от провайдера (структура отчета, фото и проч.)

7. Согласовать возможное участие ведущего в дальнейшей работе после проведения стратегической сессии (иногда нужны промежуточные пост-сессии, как в тренинге, и хорошо, если их проводит тот же человек или компания).

8. Обсудить алгоритм сценария стратегической сессии, помочь провайдеру заранее спрогнозировать, какие ответы он скорее всего будет получать на опорные вопросы в текущей формулировке.

9. Обеспечить исполнителю моральную и информационную поддержку. Вы работаете на одну цель. Если выбрали исполнителя, больше не надо его проверять «на слабо», обеспечьте все возможности для его эффективной подготовки.

Возможное пост-сопровождение после стратегической сессии:

Для того, чтобы разобраться с тем, какое сопровождение необходимо после стратегической сессии, давайте разберемся, зачем это сопровождение нужно. Ключевые цели следующие:

Исходя из этих целей можно выбирать подходящий формат пост-сопровождения. На моей практике, системно к этому вопросу подходят лишь немногие клиенты. Но та же беда существует и в отношении программ обучения: слишком часто клиенты все силы направляют на сами тренинги, игнорируя необходимость последующих поддерживающих мероприятий (без которых невозможно достижение цели, ради которой проводились тренинги). Я по этому поводу всегда говорю: «хотите реальных результатов — от 30 до 60% бюджета сразу закладывайте на пост-сопровождение (и в отношении стратсессий и в отношении обучения персонала)». Видимо пока рынок в нашем Отечестве только зреет до глубокого понимания этой идеи…

Итого, по результатам многолетних наблюдений, могу сказать, что даже удачно проведенная стратсессия сама по себе менее эффективна в долгосрочной перспективе, чем более слабая сессия, но, включенная в какую-то целостную систему мероприятий, связанных с развитием компании. Грубо говоря, стратегическая сессия — это не «мимолетное видение», а элемент достижения конкретных целей и задач компании. Она должна происходить не «вдруг» и не «потому, что пришло время ежегодного собрания», а в связи с тем, что назрели значимые вопросы, требующие совместного обсуждения.

Желаю Вам успешных осмысленных стратегических сессий и компетентных провайдеров!

Источник

PHP для начинающих. Сессия

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

Начну с сессий — это один из самых важных компонентов, с которыми вам придется работать. Не понимая принципов его работы — наворотите делов. Так что во избежание проблем я постараюсь рассказать о всех возможных нюансах.

Но для начала, чтобы понять зачем нам сессия, обратимся к истокам — к HTTP протоколу.

HTTP Protocol

Изначально подразумевали, что по этому протоколу будет только HTML передаваться, отсель и название, а сейчас чего только не отправляют и =^.^= и(•_ㅅ_•)

Чтобы не ходить вокруг да около, давайте я вам приведу пример общения по HTTP протоколу.
Вот пример запроса, каким его отправляет ваш браузер, когда вы запрашиваете страницу http://example.com :

А вот пример ответа:

Это очень упрощенные примеры, но и тут можно увидеть из чего состоят HTTP запрос и ответ:

Т.е. если украсть cookie из вашего браузера, то можно будет зайти на вашу страничку в facebook от вашего имени? Не пугайтесь, так сделать нельзя, по крайней мере с facebook, и дальше я вам покажу один из возможных способов защиты от данного вида атаки на ваших пользователей.

Давайте теперь посмотрим как изменятся наши запрос-ответ, будь там авторизация:

Метод у нас изменился на POST, и в теле запроса у нас передаются логин и пароль. Если использовать метод GET, то строка запроса будет содержать логин и пароль, что не очень правильно с идеологической точки зрения, и имеет ряд побочных явлений в виде логирования (например, в том же access.log ) и кеширования паролей в открытом виде.

Как можно заметить, заголовки отправляемые браузером (Request Headers) и сервером (Response Headers) отличаются, хотя есть и общие и для запросов и для ответов (General Headers)

Сервер узнал нашего пользователя по присланным cookie, и дальше предоставит ему доступ к личной информации. Так, ну вроде с сессиями и HTTP разобрались, теперь можно вернутся к PHP и его особенностям.

PHP и сессия

Я надеюсь, у вас уже установлен PHP на компьютере, т.к. дальше я буду приводить примеры, и их надо будет запускать

Вот вам статейка на тему PHP is meant to die, или вот она же на русском языке, но лучше отложите её в закладки «на потом».

Перво-наперво необходимо «стартовать» сессию — для этого воспользуемся функцией session_start(), создайте файл session.start.php со следующим содержимым:

Запустите встроенный в PHP web-server в папке с вашим скриптом:

Запустите браузер, и откройте в нём Developer Tools (или что там у вас), далее перейдите на страницу http://127.0.0.1:8080/session.start.php — вы должны увидеть лишь пустую страницу, но не спешите закрывать — посмотрите на заголовки которые нам прислал сервер:

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

Там будет много чего, интересует нас только вот эта строчка в ответе сервера (почистите куки, если нет такой строчки, и обновите страницу):

Увидев сие, браузер сохранит у себя куку с именем `PHPSESSID`:

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

PHPSESSID — имя сессии по умолчанию, регулируется из конфига php.ini директивой session.name, при необходимости имя можно изменить в самом конфигурационном файле или с помощью функции session_name()

И теперь — обновляем страничку, и видим, что браузер отправляет эту куку на сервер, можете попробовать пару раз обновить страницу, результат будет идентичным:

старт сессия что это. Смотреть фото старт сессия что это. Смотреть картинку старт сессия что это. Картинка про старт сессия что это. Фото старт сессия что это

Итого, что мы имеем — теория совпала с практикой, и это просто отлично.

Обновляем страничку и видим время сервера, обновляем ещё раз — и время обновилось. Давайте теперь сделаем так, чтобы установленное время не изменялось при каждом обновлении страницы:

Обновляем — время не меняется, то что нужно. Но при этом мы помним, PHP умирает, значит данную сессию он где-то хранит, и мы найдём это место…

Всё тайное становится явным

В вашей конфигурации путь к файлам может быть не указан, тогда файлы сессии будут хранится во временных файлах вашей системы — вызовите функцию sys_get_temp_dir() и узнайте где это потаённое место.

Так, идём по данному пути и находим ваш файл сессии (у меня это файл sess_dap83arr6r3b56e0q7t5i0qf91 ), откроем его в текстовом редакторе:

Как видим — вот оно наше время, вот в каком хитром формате хранится наша сессия, но мы можем внести правки, поменять время, или можем просто вписать любую строку, почему бы и нет:

Так, что мы ещё не пробовали? Правильно — украсть «печеньки», давайте запустим другой браузер и добавим в него теже самые cookie. Я вам для этого простенький javascript написал, скопируйте его в консоль браузера и запустите, только не забудьте идентификатор сессии поменять на свой:

Вот теперь у вас оба браузера смотрят на одну и туже сессию. Я выше упоминал, что расскажу о способах защиты, рассмотрим самый простой способ — привяжем сессию к браузеру, точнее к тому, как браузер представляется серверу — будем запоминать User-Agent и проверять его каждый раз:

Ключевое слово в предыдущем абзаце похоже, в реальных проектах cookies уже давно «бегают» по HTTPS протоколу, таким образом никто их не сможет украсть без физического доступа к вашему компьютеру или смартфону

Стоит упомянуть директиву session.cookie-httponly, благодаря ей сессионная кука будет недоступна из JavaScript’a. Кроме этого — если заглянуть в мануал функции setcookie(), то можно заметить, что последний параметр так же отвечает за HttpOnly. Помните об этом — эта настройка позволяет достаточно эффективно бороться с XSS атаками в практически всех браузерах.

По шагам

А теперь поясню по шагам алгоритм, как работает сессия в PHP, на примере следующего кода (настройки по умолчанию):

А есть ли жизнь без «печенек»?

PHP может работать с сессией даже если cookie в браузере отключены, но тогда все URL на сайте будут содержать параметр с идентификатором вашей сессии, и да — это ещё настроить надо, но оно вам надо? Мне не приходилось это использовать, но если очень хочется — я просто скажу где копать:

А если надо сессию в базе данных хранить?

Отдельно замечу, что не надо писать собственные обработчики сессий для redis и memcache — когда вы устанавливаете данные расширения, то вместе с ними идут и соответствующие обработчики, так что RTFM наше всё. Ну и да, обработчик нужно указывать до вызова session_start() 😉

Когда умирает сессия?

За время жизни сессии отвечает директива session.gc_maxlifetime. По умолчанию, данная директива равна 1440 секундам (24 минуты), понимать её следует так, что если к сессии не было обращении в течении заданного времени, то сессия будет считаться «протухшей» и будет ждать своей очереди на удаление.

Интересен другой вопрос, можете задать его матёрым разработчикам — когда PHP удаляет файлы просроченных сессий? Ответ есть в официальном руководстве, но не в явном виде — так что запоминайте:

Самая тривиальная ошибка

Ошибка у которой более полумиллиона результатов в выдаче Google:

Cannot send session cookie — headers already sent by
Cannot send session cache limiter — headers already sent

Для получения таковой, создайте файл session.error.php со следующим содержимым:

Во второй строке странная «магия» — это фокус с буфером вывода, я ещё расскажу о нём в одной из следующих статей, пока считайте это лишь строкой длинной в 4096 символов, в данном случае — это всё пробелы

Для проверки полученных знаний, я хочу, чтобы вы реализовали свой собственный механизм сессий и заставили приведенный код работать:

Блокировка

Ещё одна распространённая ошибка у новичков — это попытка прочитать файл сессии пока он заблокирован другим скриптом. Собственно, это не совсем ошибка, это недопонимание принципа блокировки 🙂

Но давайте ещё раз по шагам:

«Воткнутся» в данную ошибку очень легко, создайте два файла:

Есть пару вариантов, как избежать подобного явления — «топорный» и «продуманный».

«Топорный»
Использовать самописный обработчик сессий, в котором «забыть» реализовать блокировку 🙂
Чуть лучше вариант, это взять готовый и отключить блокировку (например у memcached есть такая опция — memcached.sess_locking) O_o
Потратить часы на дебаг кода в поисках редко всплывающей ошибки…

«Продуманный»
Куда как лучше — самому следить за блокировкой сессии, и снимать её, когда она не требуется:

— Если вы уверенны, что вам не потребуется вносить изменения в сессионные данные используйте опцию read_and_close при старте сессии:

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

— Если вам таки нужно вносить изменения в сессию, то после внесения оных закрывайте сессию от записи:

В заключение

В этой статье вам дано семь заданий, при этом они касаются не только работы с сессиями, но так же познакомят вас с MySQL и с функциями работы со строками. Для усвоения этого материала — отдельной статьи не нужно, хватит и мануала по приведенным ссылкам — никто за вас его читать не будет. Дерзайте!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *