1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
2025-10-25 22:39:27 +03:00

1041 lines
48 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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>&lt;input hidden="session_id"
name="session_name"&gt;</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
-->