mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
1041 lines
48 KiB
XML
1041 lines
48 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 7f1b75ed358430c1db0e37c832d2926735d5f5c2 Maintainer: sergey Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<section xml:id="session.configuration" xmlns="http://docbook.org/ns/docbook">
|
||
&reftitle.runtime;
|
||
&extension.runtime;
|
||
<para>
|
||
<table>
|
||
<title>Опции настройки механизма сессий</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody xml:id="session.configuration.list">
|
||
<row>
|
||
<entry><link linkend="ini.session.save-path">session.save_path</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.name">session.name</link></entry>
|
||
<entry>"PHPSESSID"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.save-handler">session.save_handler</link></entry>
|
||
<entry>"files"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.auto-start">session.auto_start</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.gc-probability">session.gc_probability</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.gc-divisor">session.gc_divisor</link></entry>
|
||
<entry>"100"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.gc-maxlifetime">session.gc_maxlifetime</link></entry>
|
||
<entry>"1440"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.serialize-handler">session.serialize_handler</link></entry>
|
||
<entry>"php"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.cookie-lifetime">session.cookie_lifetime</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.cookie-path">session.cookie_path</link></entry>
|
||
<entry>"/"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.cookie-domain">session.cookie_domain</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.cookie-secure">session.cookie_secure</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>До PHP 7.2.0 значение по умолчанию было <literal>""</literal>.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.cookie-httponly">session.cookie_httponly</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>До PHP 7.2.0 значение по умолчанию было <literal>""</literal>.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.cookie-samesite">session.cookie_samesite</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Директива доступна с PHP 7.3.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.use-strict-mode">session.use_strict_mode</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.use-cookies">session.use_cookies</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.use-only-cookies">session.use_only_cookies</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.referer-check">session.referer_check</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.cache-limiter">session.cache_limiter</link></entry>
|
||
<entry>"nocache"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.cache-expire">session.cache_expire</link></entry>
|
||
<entry>"180"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.use-trans-sid">session.use_trans_sid</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.trans-sid-tags">session.trans_sid_tags</link></entry>
|
||
<entry>"a=href,area=href,frame=src,form="</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Директива доступна с PHP 7.1.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.trans-sid-hosts">session.trans_sid_hosts</link></entry>
|
||
<entry><literal>$_SERVER['HTTP_HOST']</literal></entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Директива доступна с PHP 7.1.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.sid-length">session.sid_length</link></entry>
|
||
<entry>"32"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Директива была доступна с PHP 7.1.0 и устарела с PHP 8.4.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.sid-bits-per-character">session.sid_bits_per_character</link></entry>
|
||
<entry>"4"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Директива была доступна с PHP 7.1.0 и устарела с PHP 8.4.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.upload-progress.enabled">session.upload_progress.enabled</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.upload-progress.cleanup">session.upload_progress.cleanup</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.upload-progress.prefix">session.upload_progress.prefix</link></entry>
|
||
<entry>"upload_progress_"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.upload-progress.name">session.upload_progress.name</link></entry>
|
||
<entry>"PHP_SESSION_UPLOAD_PROGRESS"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.upload-progress.freq">session.upload_progress.freq</link></entry>
|
||
<entry>"1%"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.upload-progress.min-freq">session.upload_progress.min_freq</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_PERDIR</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.lazy-write">session.lazy_write</link></entry>
|
||
<entry>"1"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.hash-function">session.hash_function</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Удалена в PHP 7.1.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.hash-bits-per-character">session.hash_bits_per_character</link></entry>
|
||
<entry>"4"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Удалена в PHP 7.1.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.entropy-file">session.entropy_file</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Удалена в PHP 7.1.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.session.entropy-length">session.entropy_length</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry>Удалена в PHP 7.1.0.</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
&ini.php.constants;
|
||
</para>
|
||
<para>
|
||
Система управления сессиями поддерживает ряд опций, которые
|
||
указываются в файле &php.ini;. Ниже приводится краткий обзор.
|
||
<variablelist>
|
||
|
||
<varlistentry xml:id="ini.session.save-handler">
|
||
<term>
|
||
<parameter>session.save_handler</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.save_handler</literal> определяет имя обработчика, который
|
||
сохраняет и извлекает данные сессии.
|
||
По умолчанию значение директивы равно <literal>files</literal>. Обратите внимание,
|
||
отдельные модули регистрируют свои обработчики
|
||
(<literal>save_handler</literal>). Текущие зарегистрированные обработчики
|
||
отображает функция <function>phpinfo</function>. Смотрите также
|
||
описание функции <function>session_set_save_handler</function>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.save-path">
|
||
<term>
|
||
<parameter>session.save_path</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.save_path</literal> определяет аргумент, который
|
||
передаётся в обработчик сохранения. Если выбран обработчик файлов
|
||
по умолчанию, аргумент содержит путь, по которому будут создаваться файлы.
|
||
Смотрите также описание функции <function>session_save_path</function>.
|
||
</simpara>
|
||
<para>
|
||
Для этой директивы можно задать необязательный аргумент <literal>N</literal>,
|
||
который определяет глубину вложенных директорий, по которым будут распределены
|
||
файлы сессий.
|
||
Например, установка значения <literal>'5;/tmp'</literal> может
|
||
расположить созданный файл сессии по такому пути:
|
||
<literal>/tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If</literal>.
|
||
Чтобы использовать аргумент <literal>N</literal>,
|
||
вначале необходимо создать все эти директории.
|
||
Для этого в директории <filename>ext/session</filename>
|
||
существует небольшой скрипт оболочки, который в Linux-системах
|
||
называется <filename>mod_files.sh</filename>, а в системах Windows <filename>mod_files.bat</filename>.
|
||
Заметьте также, что если значение аргумента <literal>N</literal> определили и оно больше 0, то сборщик мусора
|
||
не будет автоматически собирать мусор, подробнее об этом сообщает файл &php.ini;.
|
||
А также, если аргумент <literal>N</literal> задали, необходимо удостовериться,
|
||
что значение директивы <literal>session.save_path</literal> указали в кавычках,
|
||
поскольку разделитель (<literal>;</literal>) в файле &php.ini; также указывают для комментариев.
|
||
</para>
|
||
<para>
|
||
Модуль хранения файлов создаёт файлы с правами 600 по умолчанию.
|
||
Значение по умолчанию можно изменить необязательным аргументом <literal>MODE</literal>:
|
||
<literal>N;MODE;/path</literal>, где <literal>MODE</literal> — восьмеричное
|
||
представление режима доступа к файлу.
|
||
Установка аргумента <literal>MODE</literal> не влияет
|
||
на обработку umask.
|
||
</para>
|
||
<warning>
|
||
<para>
|
||
Если установить в качестве значения общедоступную для чтения директорию,
|
||
например, <filename>/tmp</filename> (по умолчанию), остальные пользователи
|
||
сервера смогут перехватить сессию пользователя,
|
||
получив список файлов в этой директории.
|
||
</para>
|
||
</warning>
|
||
<caution>
|
||
<para>
|
||
При указании уже описанного необязательного аргумента уровня вложенности директорий <literal>N</literal>,
|
||
учитывают, что значение выше чем 1 или 2 недопустимо для большей части сайтов
|
||
из-за того, что нужно создать много директорий: например, значение 3 означает, что
|
||
в файловой системе существует
|
||
<literal>(2 ** session.sid_bits_per_character) ** 3</literal> директорий,
|
||
которые могут напрасно занимать много дискового пространства и индексных дескрипторов (inodes).
|
||
</para>
|
||
<para>
|
||
Значения больше 2 для аргумента <literal>N</literal> указывают, только если
|
||
совершенно уверены, что размер сайта соответствует такому требованию.
|
||
</para>
|
||
</caution>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.name">
|
||
<term>
|
||
<parameter>session.name</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.name</literal> определяет название сессии,
|
||
которое будет использовано как название cookies. В директиве разрешено указывать только цифры и буквы.
|
||
Значение по умолчанию — <literal>PHPSESSID</literal>.
|
||
Смотрите также описание функции <function>session_name</function>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.auto-start">
|
||
<term>
|
||
<parameter>session.auto_start</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.auto_start</literal> определяет, будет ли модуль сессии
|
||
запускать сессию автоматически при старте. Значение по умолчанию
|
||
<literal>0</literal> (отключено).
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.serialize-handler">
|
||
<term>
|
||
<parameter>session.serialize_handler</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.serialize_handler</literal> определяет имя обработчика,
|
||
который будет использован для сериализации/десериализации данных.
|
||
Поддерживаются формат сериализации PHP (наименование <literal>php_serialize</literal>),
|
||
внутренний формат PHP (наименование <literal>php</literal> и
|
||
<literal>php_binary</literal>) и WDDX
|
||
(наименование <literal>wddx</literal>). WDDX доступен только в том случае,
|
||
если PHP скомпилирован с <link linkend="ref.wddx">поддержкой WDDX</link>.
|
||
<literal>php_serialize</literal> использует
|
||
простую функцию сериализации/десериализации для внутренних нужд и
|
||
не имеет тех ограничений, какие есть у <literal>php</literal> и <literal>php_binary</literal>.
|
||
Старые обработчики сериализации не могут хранить
|
||
ни числовые, ни строковые индексы, содержащие специальные символы
|
||
(<literal>|</literal> и <literal>!</literal>) в $_SESSION.
|
||
Используйте <literal>php_serialize</literal>, чтобы обойти
|
||
ошибки числовых и строковых индексов при завершении скрипта.
|
||
Значение по умолчанию <literal>php</literal>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.gc-probability">
|
||
<term>
|
||
<parameter>session.gc_probability</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Директива <literal>session.gc_probability</literal> в сочетании
|
||
с директивой <literal>session.gc_divisor</literal> определяет вероятность запуска
|
||
функции сборщика мусора (gc, garbage collection).
|
||
Значение по умолчанию равно <literal>1</literal>. Параметр принимает только значения,
|
||
которые больше или равны <literal>0</literal>.
|
||
Описание директивы <link linkend="ini.session.gc-divisor">session.gc_divisor</link>
|
||
даёт дополнительную информацию.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.gc-divisor">
|
||
<term>
|
||
<parameter>session.gc_divisor</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Директива <literal>session.gc_divisor</literal> в сочетании
|
||
с директивой <literal>session.gc_probability</literal> определяет вероятность запуска функции сборщика мусора
|
||
(gc, garbage collection) при каждой инициализации сессии. Вероятность рассчитывается
|
||
как gc_probability/gc_divisor, то есть 1/100 означает, что функция gc запускается в одном
|
||
случае из ста, или 1% при каждом запросе.
|
||
Значение директивы <literal>session.gc_divisor</literal> по умолчанию равно <literal>100</literal>.
|
||
Параметр принимает только значения больше <literal>0</literal>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.gc-maxlifetime">
|
||
<term>
|
||
<parameter>session.gc_maxlifetime</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.gc_maxlifetime</literal> задаёт отсрочку времени в секундах, после
|
||
которой данные будут рассматриваться как "мусор" и потенциально будут удалены. Сбор
|
||
мусора может произойти в течение старта сессии (в зависимости от значений
|
||
<link linkend="ini.session.gc-probability">session.gc_probability</link> и
|
||
<link linkend="ini.session.gc-divisor">session.gc_divisor</link>).
|
||
По умолчанию значение <literal>1440</literal> (24 минуты).
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
Если разные скрипты имеют разные значения <literal>session.gc_maxlifetime</literal>,
|
||
но при этом одни и те же места для хранения данных сессии, то скрипт с минимальным
|
||
значением уничтожит все данные. В таком случае следует использовать
|
||
эту директиву вместе с
|
||
<link linkend="ini.session.save-path">session.save_path</link>.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.referer-check">
|
||
<term>
|
||
<parameter>session.referer_check</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.referer_check</literal> содержит подстроку, которую
|
||
можно использовать при проверке HTTP Referer. Если клиентом был послан
|
||
referer и подстрока не была выявлена, то идентификатор сессии
|
||
будет помечен как недействительный. По умолчанию используется пустая строка.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.entropy-file">
|
||
<term>
|
||
<parameter>session.entropy_file</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.entropy_file</literal> содержит путь к ресурсу (файлу),
|
||
используемому как дополнительный источник энтропии в процессе создания
|
||
идентификатора сессии. Например, <literal>/dev/random</literal> или
|
||
<literal>/dev/urandom</literal>, которые доступны на многих Unix-системах.
|
||
</simpara>
|
||
<simpara>
|
||
Эта возможность также поддерживается в Windows. Указание
|
||
ненулевого значения в <literal>session.entropy_length</literal> предписывает PHP
|
||
использовать в качестве источника энтропии Windows Random API.
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
Удалено в PHP 7.1.0.
|
||
</simpara>
|
||
<simpara>
|
||
<literal>session.entropy_file</literal> имеет значение по умолчанию
|
||
равное <literal>/dev/urandom</literal> или <literal>/dev/arandom</literal>, если они
|
||
доступны.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.entropy-length">
|
||
<term>
|
||
<parameter>session.entropy_length</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.entropy_length</literal> определяет количество байт,
|
||
которые будут прочитаны из вышеуказанного файла. По умолчанию <literal>32</literal>.
|
||
</simpara>
|
||
<simpara>
|
||
Удалено в PHP 7.1.0.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.use-strict-mode">
|
||
<term>
|
||
<parameter>session.use_strict_mode</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.use_strict_mode</literal> определяет
|
||
будет ли модуль использовать режим строгого идентификатора (ID).
|
||
Если от браузера получен неопределённый ID, то браузеру будет отправлен новый ID.
|
||
Таким образом приложения защищаются от фиксации сессии с помощью строгого режима.
|
||
По умолчанию <literal>0</literal> (отключено).
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
Включение <literal>session.use_strict_mode</literal> является обязательным для
|
||
общей безопасности сессии. Всем сайтам рекомендуется её включать.
|
||
Смотрите примеры <function>session_create_id</function>.
|
||
</simpara>
|
||
</note>
|
||
<warning>
|
||
<para>
|
||
Если пользовательский обработчик сессии, зарегистрированный с помощью <function>session_set_save_handler</function>,
|
||
не реализует <methodname>SessionUpdateTimestampHandlerInterface::validateId</methodname>
|
||
и не предоставляет callback-функцию <parameter>validate_sid</parameter>, соответственно,
|
||
режим строгого идентификатора сессии будет отключён, независимо от значения этой директивы.
|
||
Особо обратите внимание, что <classname>SessionHandler</classname> <emphasis>не</emphasis> реализует <methodname>SessionHandler::validateId</methodname>.
|
||
</para>
|
||
</warning>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.use-cookies">
|
||
<term>
|
||
<parameter>session.use_cookies</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.use_cookies</literal> определяет, будет ли модуль
|
||
использовать cookies для хранения идентификатора сессии на стороне клиента.
|
||
По умолчанию <literal>1</literal> (включено).
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.use-only-cookies">
|
||
<term>
|
||
<parameter>session.use_only_cookies</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.use_only_cookies</literal> определяет, будет ли
|
||
модуль использовать <emphasis role="strong">только</emphasis> cookies
|
||
для хранения идентификатора сессии на стороне клиента.
|
||
Включение этого параметра предотвращает атаки с передачей
|
||
идентификаторов сессии в URL-адресах.
|
||
Значение по умолчанию <literal>1</literal> (включено).
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
|
||
<varlistentry xml:id="ini.session.cookie-lifetime">
|
||
<term>
|
||
<parameter>session.cookie_lifetime</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.cookie_lifetime</literal> указывает время жизни cookies,
|
||
отправляемого в браузер клиента, в секундах. Значение 0 означает, что
|
||
cookies будут валидны до закрытия браузера. По умолчанию равно <literal>0</literal>.
|
||
Смотрите также <function>session_get_cookie_params</function> и
|
||
<function>session_set_cookie_params</function>.
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
Отметка окончания времени устанавливается по отношению к серверному времени,
|
||
которое не обязательно совпадает с временем в браузере клиента.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.cookie-path">
|
||
<term>
|
||
<parameter>session.cookie_path</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.cookie_path</literal> определяет устанавливаемый
|
||
путь в сессионной cookie. По умолчанию <literal>/</literal>. Смотрите также
|
||
<function>session_get_cookie_params</function> и
|
||
<function>session_set_cookie_params</function>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.cookie-domain">
|
||
<term>
|
||
<parameter>session.cookie_domain</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.cookie_domain</literal> определяет устанавливаемый
|
||
домен в сессионной cookie. В соответствии со спецификацией нет смысла дополнительно
|
||
указывать имя хоста, который сгенерировал cookies.
|
||
Смотрите также <function>session_get_cookie_params</function> и
|
||
<function>session_set_cookie_params</function>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.cookie-secure">
|
||
<term>
|
||
<parameter>session.cookie_secure</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.cookie_secure</literal> указывает, должны ли cookies
|
||
передаваться только через защищённое соединение.
|
||
Когда для этой настройки установлено значение <literal>on</literal>,
|
||
сессии работают только с HTTPS-соединениями.
|
||
Если значение <literal>off</literal>, то сессии работают и с HTTP-,
|
||
и с HTTPS-соединениями.
|
||
Значение по умолчанию <literal>off</literal>.
|
||
Смотрите также описание функций
|
||
<function>session_get_cookie_params</function>
|
||
и <function>session_set_cookie_params</function>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.cookie-httponly">
|
||
<term>
|
||
<parameter>session.cookie_httponly</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Отметка, согласно которой доступ к cookie с идентификатором сессии может быть получен только через HTTP-протокол.
|
||
Это означает, что cookie не будет доступна через скриптовые языки,
|
||
такие как JavaScript. Данная настройка позволяет эффективно защитить от
|
||
XSS-атак (к сожалению, эта функция поддерживается не всеми браузерами).
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.cookie-samesite">
|
||
<term>
|
||
<parameter>session.cookie_samesite</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Позволяет серверам утверждать, что cookie не должен отправляться вместе
|
||
с межсайтовыми запросами. Это утверждение позволяет браузерам пользователей снизить риск
|
||
утечки информации из разных источников и обеспечивает определённую защиту от подделки
|
||
кросс-доменных запросов. Обратите внимание, что это поддерживают не все браузеры.
|
||
Пустое значение означает, что атрибут cookie сайта не будет установлен.
|
||
<literal>Lax</literal> и <literal>Strict</literal> означают, что cookie не будет
|
||
отправлен для кросс-доменных POST-запросов; <literal>Lax</literal> отправит cookie
|
||
для междоменных GET-запросов, а <literal>Strict</literal> не будет этого делать.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.cache-limiter">
|
||
<term>
|
||
<parameter>session.cache_limiter</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.cache_limiter</literal> определяет режим кеширования, используемого
|
||
для страниц сессий. Может принимать одно из следующих значений:
|
||
<literal>nocache</literal>, <literal>private</literal>,
|
||
<literal>private_no_expire</literal> или <literal>public</literal>.
|
||
По умолчанию <literal>nocache</literal>. Подробнее о данных
|
||
значениях смотрите в
|
||
<function>session_cache_limiter</function>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
|
||
<varlistentry xml:id="ini.session.cache-expire">
|
||
<term>
|
||
<parameter>session.cache_expire</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.cache_expire</literal> указывает время жизни
|
||
кешированных страниц сессий в минутах, это никак не влияет на ограничитель
|
||
nocache. По умолчанию <literal>180</literal>. Смотрите также
|
||
<function>session_cache_expire</function>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.use-trans-sid">
|
||
<term>
|
||
<parameter>session.use_trans_sid</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.use_trans_sid</literal> указывает, используется ли
|
||
прозрачная поддержка sid или нет. По умолчанию
|
||
<literal>0</literal> (отключено).
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
Управление сессией на основе URL имеет дополнительные риски
|
||
безопасности по сравнению с управлением на основе cookies. В качестве
|
||
примера можно упомянуть такие ситуации, когда пользователи
|
||
могут отправить URL, содержащий идентификатор активной сессии, своим
|
||
друзьям по электронной почте или сохранить ссылку с идентификатором
|
||
в закладках и все время посещать сайт с одним и тем же идентификатором.
|
||
</simpara>
|
||
<simpara>
|
||
Начиная с PHP 7.1.0, полный путь URL, то есть https://php.net/, обрабатывается "trans sid".
|
||
Раньше PHP обрабатывал только относительный URL-адреса.
|
||
Перезапись целевого хоста задаётся <link
|
||
linkend="ini.session.trans-sid-hosts">session.trans_sid_hosts</link>.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.trans-sid-tags">
|
||
<term>
|
||
<parameter>session.trans_sid_tags</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.trans_sid_tags</literal> задаёт перезаписываемые теги HTML
|
||
для включения идентификатора сессии когда включена поддержка прозрачных "sid".
|
||
По умолчанию <literal>a=href,area=href,frame=src,input=src,form=</literal>
|
||
</simpara>
|
||
<simpara>
|
||
<literal>form</literal> — специальных тег. <literal><input hidden="session_id"
|
||
name="session_name"></literal> добавляется в форму.
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
До PHP 7.1.0 для этого использовался <link
|
||
linkend="ini.url-rewriter.tags">url_rewriter.tags</link>. С PHP 7.1.0,
|
||
<literal>fieldset</literal> больше не считается за специальный тег.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.trans-sid-hosts">
|
||
<term>
|
||
<parameter>session.trans_sid_hosts</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.trans_sid_hosts</literal> задаёт, какие хосты будут перезаписаны
|
||
для включения идентификатора сессии, когда включена поддержка прозрачных "sid".
|
||
По умолчанию <literal>$_SERVER['HTTP_HOST']</literal>.
|
||
Несколько хостов можно указать через запятую. Не допускается вставлять пробелы
|
||
между хостами. Так правильно: <literal>php.net,wiki.php.net,bugs.php.net</literal>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.sid-length">
|
||
<term>
|
||
<parameter>session.sid_length</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.sid_length</literal> позволяет указать длину идентификатора сессии.
|
||
Это значение должно быть в диапазоне 22-256.
|
||
</simpara>
|
||
<simpara>
|
||
По умолчанию 32. Если вам нужна совместимость, указывайте 32, 40 и т. д.
|
||
Более длинные идентификаторы сложнее подобрать. Рекомендуется использовать длину
|
||
не менее 32.
|
||
</simpara>
|
||
<tip>
|
||
<para>
|
||
Заметки по совместимости: Используйте 32 для
|
||
<literal>session.hash_function</literal>=0 (MD5) и
|
||
<literal>session.hash_bits_per_character</literal>=4,
|
||
<literal>session.hash_function</literal>=1 (SHA1) и
|
||
<literal>session.hash_bits_per_character</literal>=6. 26 для
|
||
<literal>session.hash_function</literal>=0 (MD5) и
|
||
<literal>session.hash_bits_per_character</literal>=5. 22 для
|
||
<literal>session.hash_function</literal>=0 (MD5) и
|
||
<literal>session.hash_bits_per_character</literal>=6.
|
||
Вы должны сконфигурировать INI-настройки таким образом, чтобы идентификатор
|
||
сессии состоял как минимум из 128 бит. Не забудьте задать соответствующие
|
||
значения для <literal>session.sid_bits_per_character</literal>, иначе ваши
|
||
идентификаторы будут слабыми.
|
||
</para>
|
||
</tip>
|
||
<note>
|
||
<simpara>
|
||
Эта настройка появилась в PHP 7.1.0.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.sid-bits-per-character">
|
||
<term>
|
||
<parameter>session.sid_bits_per_character</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.sid_bits_per_character</literal> позволяет задать количество бит в
|
||
одном символе идентификатора сессии. Доступные значения
|
||
'4' (0-9, a-f), '5' (0-9, a-v), и '6' (0-9, a-z, A-Z, "-", ",").
|
||
</simpara>
|
||
<simpara>
|
||
По умолчанию 4. Чем больше бит, тем сильнее идентификатор сессии.
|
||
В большинстве окружений рекомендуется 5.
|
||
</simpara>
|
||
<para>
|
||
</para>
|
||
<note>
|
||
<simpara>
|
||
Эта настройка появилась в PHP 7.1.0.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.hash-function">
|
||
<term>
|
||
<parameter>session.hash_function</parameter>
|
||
<type>mixed</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.hash_function</literal> позволяет указать алгоритм
|
||
хеширования, используемый для генерации идентификатора сессии.
|
||
'0' означает MD5 (128 bits), а '1' означает SHA-1 (160 bits).
|
||
</simpara>
|
||
<para>
|
||
Возможно указать любой из алгоритмов,
|
||
предусмотренных <link linkend="ref.hash">модулем hash</link> (если
|
||
он доступен), например, <literal>sha512</literal> или
|
||
<literal>whirlpool</literal>. Полный список алгоритмов может быть
|
||
получен с помощью функции <function>hash_algos</function>.
|
||
</para>
|
||
<note>
|
||
<simpara>
|
||
Удалена в PHP 7.1.0.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.hash-bits-per-character">
|
||
<term>
|
||
<parameter>session.hash_bits_per_character</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
<literal>session.hash_bits_per_character</literal> позволяет указать
|
||
сколько бит хранится в каждом символе при преобразовании бинарного
|
||
представления во что-либо более удобочитаемое. Возможные значения: '4' (0-9, a-f),
|
||
'5' (0-9, a-v) и '6' (0-9, a-z, A-Z, "-", ",").
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
Удалена в PHP 7.1.0.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.upload-progress.enabled">
|
||
<term>
|
||
<parameter>session.upload_progress.enabled</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Включает отслеживание прогресса загрузки файлов
|
||
и заполнение соответствующей переменной в массиве <varname>$_SESSION</varname>.
|
||
По умолчанию 1, включено.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.upload-progress.cleanup">
|
||
<term>
|
||
<parameter>session.upload_progress.cleanup</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Чистка информации о прогрессе загрузки файлов по завершении
|
||
обработки POST-данных (то есть когда загрузка завершена).
|
||
По умолчанию 1, включено.
|
||
</simpara>
|
||
<note>
|
||
<simpara>
|
||
Строго рекомендуется не отключать эту опцию.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.upload-progress.prefix">
|
||
<term>
|
||
<parameter>session.upload_progress.prefix</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Префикс, используемый для ключа прогресса загрузки в массиве <varname>$_SESSION</varname>.
|
||
Для обеспечения уникальности данный ключ будет присоединён к значению
|
||
<literal>$_POST[ini_get("session.upload_progress.name")]</literal>.
|
||
</simpara>
|
||
<simpara>
|
||
По умолчанию равен "upload_progress_".
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.upload-progress.name">
|
||
<term>
|
||
<parameter>session.upload_progress.name</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Имя ключа, используемого в массиве <varname>$_SESSION</varname>, для хранения
|
||
информации о прогрессе. Смотрите также директиву
|
||
<link linkend="ini.session.upload-progress.prefix">session.upload_progress.prefix</link>.
|
||
</simpara>
|
||
<simpara>
|
||
Если элемент <literal>$_POST[ini_get("session.upload_progress.name")]</literal>
|
||
не передан, прогресс загрузки данного файла не будет отслеживаться.
|
||
</simpara>
|
||
<simpara>
|
||
По умолчанию "PHP_SESSION_UPLOAD_PROGRESS".
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.upload-progress.freq">
|
||
<term>
|
||
<parameter>session.upload_progress.freq</parameter>
|
||
<type>mixed</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Определяет частоту обновления информации о прогрессе загрузки.
|
||
Можно указать значение в байтах (то есть "обновлять информацию
|
||
о прогрессе каждые 100 байт") или в процентах (то есть "обновлять
|
||
информацию о прогрессе после получения 1% данных от размера файла").
|
||
</simpara>
|
||
<simpara>
|
||
По умолчанию "1%".
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.upload-progress.min-freq">
|
||
<term>
|
||
<parameter>session.upload_progress.min_freq</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Минимальная задержка между обновлениями, в секундах.
|
||
По умолчанию "1" (одна секунда).
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
<varlistentry xml:id="ini.session.lazy-write">
|
||
<term>
|
||
<parameter>session.lazy_write</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Если <literal>session.lazy_write</literal> установлен в 1, то данные сессии
|
||
будут перезаписываться только при их изменении. По умолчанию 1, включено.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
|
||
</variablelist>
|
||
</para>
|
||
|
||
<para>
|
||
Прогресс загрузки файлов не будет обрабатываться, если не включена
|
||
опция session.upload_progress.enabled и не установлена переменная
|
||
$_POST[ini_get("session.upload_progress.name")].
|
||
Подробнее об этом смотрите в главе
|
||
"<link linkend="session.upload-progress">Отслеживание прогресса загрузки файлов с помощью сессий</link>".
|
||
</para>
|
||
|
||
</section>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|