Багрец posting php mode. Как защитить форум на движке phpBB от автоматических регистраций

Определяет, разрешается ли короткая форма записи ( ) тегов PHP. Если вы хотите использовать PHP совместно с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать . В противном случае, вы можете отобразить это при помощи PHP, например: "; ?> . Если же эта опция отключена, вы должны использовать длинную форму открывающего тега PHP ( ).

Замечание :

Эта директива также влияла на сокращение до версии PHP 5.4.0, которое идентично записи . Для использования этого сокращения должна была быть включена директива short_open_tag . Начиная с версии PHP 5.4.0 запись стала доступна всегда.

asp_tags boolean Включает использование тегов в стиле ASP в дополнение к обычным тегам . Это касается и сокращения для отображения значения переменных <%= $value %>. Для получения дополнительной информации, обратитесь к разделу Экранирование HTML . precision integer Количество значащих цифр, отображаемых для чисел с плавающей точкой. -1 serialize_precision integer Количество сохраняемых значащих цифр при сериализации чисел с плавающей точкой. -1 означает, что будет использован усовершенствованный алгоритм для округления таких чисел. y2k_compliance boolean Включение совместимости с 2000 годом (создаст проблемы с несовместимыми браузерами) allow_call_time_pass_reference boolean

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

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

expose_php boolean

Выдает факт присутствия PHP на сервере, включая передачу версии PHP в HTTP-заголовке (например, X-Powered-By: PHP/5.3.7). До версии PHP 5.5.0 также показывались идентификаторы логотипов, таким образом, при добавлении их к ссылке на сайте с PHP показывался соответствующий логотип (например, ). Отключение данной опции также влияло на вывод функции phpinfo() , в этом случае логотип PHP и информация о разработчиках, принимавших участие в разработке PHP, не отображались.

Замечание :

В версии PHP 5.5.0 данные идентификаторы логотипов и функция php_logo_guid() были удалены, теперь для отображения логотипов используется механизм data URI. Таким образом добавление идентификатора логотипа к ссылке (для показа логотипа) больше не работает. Аналогично, выключение опции expose_php более не влияет на отображение логотипа PHP в выводе функции phpinfo() .

disable_functions string

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

Внимание

Эта возможность была помечена УСТАРЕВШЕЙ и БЫЛА УДАЛЕНА в версии PHP 5.3.0.

Hard_timeout integer zend.multibyte boolean

Разрешает парсинг исходных файлов в многобайтных кодировках. Включение zend.multibyte требуется для использования кодировок символов подобных SJIS, BIG5 и т.д., содержащих специальные символы в многобайтных строковых данных. Совместимые с ISO-8859-1 кодировки, например UTF-8, EUC и т.д., не требуют эту опцию.

Разрешение zend.multibyte требует установленного расширения "mbstring".

Zend.script_encoding string

Данное значение будет использовано, только при отсутствии директивы declare(encoding=...) в начале скрипта. При использовании кодировок несовместимых с ISO-8859-1, нужно использовать опции и zend.multibyte и zend.script_encoding.

Литеральные строки должны быть транслитерированы из zend.script_enconding в mbstring.internal_encoding, как если бы вызвали mb_convert_encoding() .

Zend.detect_unicode boolean

Определяет, нужно ли проверять BOM (Byte Order Mark, метка порядка байт) и корректность многобайтных символов в файле. Эта проверка производится до вызова __halt_compiler() . Доступна только в режиме Zend Multibyte.

Zend.signal_check boolean

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

Exit_on_timeout boolean

Эта директива только для Apache1 mod_php, которая заставляет потомка Apache завершиться, если произошел тайм-аут исполнения скрипта PHP. Такой тайм-аут приводит к внутреннему вызову longjmp() в Apache1, который оставляет некоторые расширения в несогласованном состоянии. По завершении процесса все неснятые блокировки или память будут очищены.

Ограничения ресурсов

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

В версиях до PHP 5.2.1 для использования этой директивы, она должна была быть указана на этапе компиляции. Так, ваша строка конфигурации должна была включать: --enable-memory-limit . Эта опция компиляции была также необходима для использования функций memory_get_usage() и memory_get_peak_usage() до версии 5.2.1.

Если используется integer этом разделе FAQ .

Настройка производительности

Замечание :

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

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

Размер, необходимый для кэширования, зависит от системы.

Realpath_cache_ttl integer

Время (в секундах) в течение которого будет использован кэш realpath для указанного файла или директории. Для систем с редко меняющимися файлами это значение можно увеличить.

Обработка данных

Конфигурационные опции обработки данных
Имя По умолчанию Место изменения Список изменений
arg_separator.output "&" PHP_INI_ALL
arg_separator.input "&" PHP_INI_PERDIR
variables_order "EGPCS" PHP_INI_PERDIR PHP_INI_ALL в PHP <= 5.0.5.
request_order "" PHP_INI_PERDIR Доступна с версии PHP 5.3.0
auto_globals_jit "1" PHP_INI_PERDIR Доступна с версии PHP 5.0.0.
register_globals "0" PHP_INI_PERDIR Удалена в PHP 5.4.0.
register_argc_argv "1" PHP_INI_PERDIR
register_long_arrays "1" PHP_INI_PERDIR Помечена устаревшей в PHP 5.3.0. Удалена в PHP 5.4.0.
enable_post_data_reading "1" PHP_INI_PERDIR Доступна с версии PHP 5.4.0
post_max_size "8M" PHP_INI_PERDIR
auto_prepend_file NULL PHP_INI_PERDIR
auto_append_file NULL PHP_INI_PERDIR
default_mimetype "text/html" PHP_INI_ALL
default_charset "UTF-8" PHP_INI_ALL По умолчанию "UTF-8" с PHP >= 5.6.0; пустая для PHP < 5.6.0.
always_populate_raw_post_data "0" PHP_INI_PERDIR Удалена в PHP 7.0.0.

Краткое разъяснение конфигурационных директив.

Этот разделитель используется в генерируемых PHP URL в качестве разделителя аргументов.

Arg_separator.input string

Список разделителей, используемых PHP для получения переменных из URL.

Замечание :

Каждый символ в этой директиве считается разделителем!

variables_order string

Устанавливает порядок обработки переменных EGPCS (E nvironment, G et, P ost, C ookie, и S erver). Например, если variables_order установлена в "SP" , то PHP создаст superglobals $_SERVER и $_POST , но не будет создавать $_ENV , $_GET и $_COOKIE . Установка в "" означает, что ни одна superglobals не будет установлена.

Если включена устаревшая директива register_globals , то variables_order также устанавливает порядок экспорта переменных ENV , GET , POST , COOKIE и SERVER в глобальное пространство. Например, если порядок переменных установлен как "EGPCS" , register_globals включена, и существуют обе $_GET["action"] и $_POST["action"] , то переменная $action будет содержать значение $_POST["action"] , так как P в нашем примере идет после G .

Внимание

request_order string

Эта директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST. Добавление производится слева направо, новые значения перезаписывают старые.

Если значение этой директивы не установлено, то используется значение директивы variables_order для содержимого переменной $_REQUEST .

Учтите, что файлы php.ini , поставляемые с дистрибутивом, по соображениям безопасности не содержат значение "C" (cookies).

Auto_globals_jit boolean

Когда включено, переменные SERVER, REQUEST и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведет к росту производительности.

Внимание

Использование переменных SERVER, REQUEST и ENV проверяется на стадии компиляции, поэтому их использование с помощью, например, переменных переменных не запустит их инициализацию.

Register_globals boolean

Регистрировать или нет переменные EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных.

Внимание

УСТАРЕВШЕЙ , начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Register_argc_argv boolean Сообщает PHP, следует ли объявлять переменные argv и argc (которые будут содержать GET-информацию). См. также Использование PHP в командной строке . register_long_arrays boolean Сообщает PHP, следует ли регистрировать устаревшие длинные предопределенные переменные типа $HTTP_*_VARS . Если включена (по умолчанию), то длинные предопределенные переменные PHP, например $HTTP_GET_VARS , будут объявлены. Если вы их не используете, рекомендуем отключить их из соображений производительности. Вместо них следует использовать суперглобальные массивы, например $_GET . Эта директива стала доступна с версии PHP 5.0.0.

Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ , начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.

Enable_post_data_reading boolean При отключении этой опции суперглобальные переменные $_POST и $_FILES не будут заполняться. Единственным способом прочесть POST-данные будет чтение обертки потока php://input . Это может оказаться полезным при проксировании запросов или обработки POST-данных способом, более эффективно использующим память. post_max_size integer Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize . В сущности, memory_limit должна быть больше чем post_max_size . Если используется integer , значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ . Если размер POST-данных больше чем post_max_size, суперглобальные переменные $_POST и $_FILES будут пустыми. Это можно отследить различными способами, например передав $_GET переменную в скрипт, обрабатывающий данные, т.е.

, а затем проверить, установлена ли переменная $_GET["processed"] .

Замечание :

PHP разрешает сокращения значений байт, включая K (кило), M (мега) и G (гига). PHP автоматически преобразует все эти сокращения. Будьте осторожны с превышением диапазона 32-битных целых значений (если вы используете 32-битную версию), так как это приведет к ошибке вашего скрипта.

auto_prepend_file string

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

Специальное значение none отключает эту директиву.

Auto_append_file string

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

Специальное значение none отключает эту директиву.

Замечание : Если скрипт завершает работу при помощи exit() , auto-append НЕ выполняется.

default_mimetype string

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

"media type" по умолчанию установлен как "text/html".

Default_charset string

В PHP 5.6 и новее "UTF-8" является значением по умолчанию и используется как кодировка по умолчанию для функций htmlentities() , html_entity_decode() и htmlspecialchars() , если параметр encoding не указан. Значение default_charset также используется для указания кодировки по умолчанию для функций iconv , если конфигурационные опции iconv.input_encoding , iconv.output_encoding и iconv.internal_encoding не установлены, и для функций mbstring , если не установлены mbstring.http_input mbstring.http_output mbstring.internal_encoding .

Все версии PHP используют это значение как кодировку для стандартного заголовка Content-Type, отправляемого PHP, если этот заголовок не переопределен вызовом функции header() .

Input_encoding string

Output_encoding string

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

Internal_encoding string

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто. В это случае используется default_charset .

Always_populate_raw_post_data mixed

Внимание

Эта функциональность считается УСТАРЕВШЕЙ с PHP 5.6.0 и УДАЛЕНА в PHP 7.0.0.

Если установлена в TRUE , то PHP будет всегда компоновать $HTTP_RAW_POST_DATA сырыми POST данными. Иначе, переменная компонуется только если не распознан MIME-тип.

Рекомендуемым методом для доступа к сырым POST данным является php://input , и $HTTP_RAW_POST_DATA считается устаревшим с PHP 5.6.0. Установка always_populate_raw_post_data в значение -1 задает новое поведение, которое будет реализовано в будущих версиях PHP, когда $HTTP_RAW_POST_DATA больше не будет использоваться.

Пути и Директории

Конфигурационные Опции Путей и Директорий
Имя По умолчанию Место изменения Список изменений
include_path ".;/path/to/php/pear" PHP_INI_ALL
open_basedir NULL PHP_INI_ALL PHP_INI_SYSTEM в PHP < 5.3.0
doc_root NULL PHP_INI_SYSTEM
user_dir NULL PHP_INI_SYSTEM
user_ini.cache_ttl "300" PHP_INI_SYSTEM Доступно с PHP 5.3.0.
user_ini.filename ".user.ini" PHP_INI_SYSTEM Доступно с PHP 5.3.0.
extension_dir "/path/to/php" PHP_INI_SYSTEM
extension NULL Только php.ini
zend_extension NULL Только php.ini
zend_extension_debug NULL Только php.ini Доступна до PHP 5.3.0.
zend_extension_debug_ts NULL Только php.ini Доступна до PHP 5.3.0.
zend_extension_ts NULL Только php.ini Доступна до PHP 5.3.0.
cgi.check_shebang_line "1" PHP_INI_SYSTEM Доступна с версии PHP 5.2.0.
cgi.discard_path "0" PHP_INI_SYSTEM Доступна с версии PHP 5.3.0.
cgi.fix_pathinfo "1" PHP_INI_SYSTEM
cgi.force_redirect "1" PHP_INI_SYSTEM PHP_INI_ALL до версии PHP 5.2.1.
cgi.nph "0" PHP_INI_SYSTEM Доступна с версии PHP 5.3.0.
cgi.redirect_status_env NULL PHP_INI_SYSTEM PHP_INI_ALL до версии PHP 5.2.1.
cgi.rfc2616_headers "0" PHP_INI_ALL
fastcgi.impersonate "0" PHP_INI_SYSTEM PHP_INI_ALL до версии PHP 5.2.1.
fastcgi.logging "1" PHP_INI_SYSTEM PHP_INI_ALL до версии PHP 5.2.1.

Краткое разъяснение конфигурационных директив.

Указывает список директорий, в которых функции require , include , fopen() , file() , readfile() и file_get_contents() ищут файлы. Формат соответствует формату системной переменной окружения PATH: список директорий, разделенных двоеточием в Unix или точкой с запятой в Windows.

При поиске подключаемых файлов PHP отдельно рассматривает каждое значение в include_path. Он проверяет первый путь, если файл в нем не найден, то он переходит к следующему, и так до тех пор, пока не найдет подключаемый файл, либо вернет предупреждение или ошибку . Вы можете изменить ваш include_path во время выполнения скрипта с помощью функции set_include_path() .

Пример #1 include_path в Unix

include_path=".:/php/includes"

Пример #2 include_path в Windows

include_path=".;c:\php\includes"

Использование . в include_path позволяет задавать относительные пути для подключения файлов, так как точка означает текущую директорию. Однако, более эффективно использовать include "./file" , чем заставлять PHP каждый раз проверять текущую директорию при подключении каждого файла.

Замечание :

Переменные окружения (ENV ) также доступны в.ini файлах. Таким образом, можно ссылаться на домашнюю директорию с помощью директив ${LOGIN} и ${USER} .

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

Пример #3 Настройка include_path с помощью переменной окружения ${USER} в Unix

include_path = ".:${USER}/pear/php"

Open_basedir string

Ограничивает указанным деревом каталогов файлы, которые могут быть доступны для PHP, включая сам файл. Эта директива НЕ подвержена влиянию безопасного режима.

Когда скрипт пытается получить доступ к файлу, например, с помощью функции fopen() или gzopen() , проверяется местонахождение файла. Если файл находится вне указанного дерева каталогов, PHP откажется его открывать. Все символические ссылки будут раскрыты, так что с их помощью не удастся обойти это ограничение. Если файл не существует, то символическая ссылка не сможет быть прочитана и имя файла (прочитанное) будет рассматриваться open_basedir .

Опция open_basedir может распространяться не только на функции для работы с файловой системой; например, если MySQL настроен использовать драйвер mysqlnd , то LOAD DATA INFILE подпадает под опцию open_basedir . Множество функций PHP также использует open_basedir .

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

В httpd.conf , open_basedir может быть выключена (например, для некоторых виртуальных хостов) тем же способом , что и любая другая конфигурационная директива: "php_admin_value open_basedir none ".

В Windows разделяйте директории точкой с запятой. На всех остальных системах, разделяйте директории двоеточием. При работе в качестве модуля Apache, пути open_basedir автоматически наследуются от родительских директорий.

Ограничение, определяемое open_basedir является именем директории начиная с версии PHP 5.2.16 и 5.3.4. Предыдущие версии использовали это значение в качестве префикса. Это означает, что "open_basedir = /dir/incl " также разрешит доступ к "/dir/include " и "/dir/incls ", если они существуют. Если вы захотите ограничить доступ только указанной директорией, поставьте в конце слеш. Например: open_basedir = /dir/incl/

По умолчанию все файлы могут быть открыты.

Замечание :

Начиная с версии PHP 5.3.0 значение open_basedir можно сделать более строгим во время выполнения скрипта. Это означает, что если open_basedir была установлена в /www/ в php.ini , то скрипт может ужать конфигурацию до /www/tmp/ во время выполнения с помощью ini_set() . При указании нескольких директорий можно использовать константу PATH_SEPARATOR в качестве разделителя путей, не зависящего от операционной системы.

Замечание :

Использование опции open_basedir установит realpath_cache_size на значение 0 и таким образом отключит кеш realpath.

doc_root string

"Корневая директория" PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим , файлы вне этой директории не обрабатываются. Если PHP не был скомпилирован с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect zend_extension_debug cgi.discard_path boolean

Если разрешено, бинарный файл PHP CGI может безопасно располагаться вне web-дерева и люди не смогут обойти безопасность.htaccess.

Cgi.fix_pathinfo boolean

Обеспечивает поддержку правильных PATH_INFO /PATH_TRANSLATED в CGI . Раньше PHP просто устанавливал PATH_TRANSLATED в SCRIPT_FILENAME и не обращал внимания на PATH_INFO . Для получения дополнительной информации о PATH_INFO , обратитесь к спецификации CGI . Установка этого значения в 1 заставит PHP CGI исправлять свой путь в соответствии со спецификацией. Значение 0 соответствует предыдущему поведению. По умолчанию опция включена. Вы должны исправить свои скрипты так, чтобы они использовали SCRIPT_FILENAME вместо PATH_TRANSLATED .

Cgi.force_redirect boolean

Директива cgi.force_redirect необходима для обеспечения безопасности во время работы PHP в качестве CGI под большинством веб-серверов. Если оставить ее неопределенной, по умолчанию PHP включает эту директиву. Вы можете выключить ее на свой страх и риск .

Замечание :

Пользователям Windows: При использовании IIS эта опция должна быть отключена. Тоже самое необходимо для OmniHTTPD и Xitami.

cgi.nph boolean

Если cgi.nph разрешена, cgi будет принудительно возвращать код 200 на каждый запрос.

Cgi.redirect_status_env string

Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобиться установить переменную окружения, которую будет искать PHP чтобы убедиться, что он может продолжать выполнение.

Замечание :

Установка этой переменной может повлечь за собой проблемы с безопасностью, так что вы должны знать, что вы делаете .

cgi.rfc2616_headers int

Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет » RFC 3875 заголовок "Status:", который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовки, соответствующие » RFC 2616 .

Если эта опция включена и вы используете PHP в окружении CGI (например, PHP-FPM), то вместо использования HTTP-заголовков ответа в стиле RFC 2616, нужно использовать их эквивалент из стандарта RFC 3875, например, вместо header("HTTP/1.0 404 Not found"); нужно использовать header("Status: 404 Not Found");

Оставьте в значении 0, если вы не уверены в том, что это значит.

Fastcgi.impersonate string

FastCGI под IIS (в ОС на базе WINNT) поддерживает возможность имперсонации прав безопасности вызывающего клиента. Это позволяет IIS определить контекст безопасности, в котором выполняется запрос. mod_fastcgi под Apache на текущий момент не поддерживает эту возможность (03/17/2002). Установите в 1 при работе под IIS. Значение по умолчанию - ноль.

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

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

Внимание

Эта опция УДАЛЕНА в PHP 7.2.0.

Особые настройки для ОС Windows

Краткое разъяснение конфигурационных директив.

При включении данной директивы будут отображаться предупреждения Windows CRT. Данные предупреждения ранее показывались по умолчанию до версии PHP 5.4.0.

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

Выбор версии PHP

Для этого вам необходимо перейти в свой аккаунт cPanel, затем выбрать раздел «» > перейти в меню «Select PHP version » > в выпадающем списке выбрать нужную версию PHP и нажать на кнопку «Set as current ». Обратите внимание, что данная настройка применяется сразу для всей хостинговой учетной записи, и для разных сайтов разные версии не могут быть применены.

Доступны следующие версии PHP: 4.4.х, 5.1.x - 5.6.x., 7.0.x - 7.3.x.

Если нужно для еще одного сайта в аккаунте поставить другую РНР версию, то в директорию с файлами нужного сайта добавляется файл.htaccess с одной из следующих строк:

# для РНР версии 7.0 SetHandler application/x-httpd-alt-php70 # для РНР версии 5.3 SetHandler application/x-httpd-alt-php53

Для каждой версии, как видите, - свое значение. Так можно менять, в зависимости от нужной вам версии, вплоть до php 7.3.

Выбор директив и расширений PHP

Вы можете самостоятельно включить или выключить определенные расширения PHP для своего аккаунта. Для этого вам необходимо перейти в свой аккаунт cPanel, затем выбрать раздел «Программное обеспечение и службы » > перейти в меню «Select PHP version » > на открывшейся странице будет список всех доступных расширений. Вы можете отметить галочками необходимые расширения и нажать Save внизу страницы.

Что касается директив, необходимо перейти в свой аккаунт cPanel, затем выбрать раздел «Программное обеспечение и службы » > перейти в меню «Select PHP version » > «Switch To PHP options» и указать необходимые значения для следующих параметров (Данные изменения повлекут за собой корректировку файла /etc/php.ini):

allow_url_fopen
display_errors
error_reporting
file_uploads
include_path
log_errors
mail.force_extra_parameters
max_execution_time
max_input_time
max_input_vars
memory_limit
open_basedir
post_max_size
session.save_path
short_open_tag
suhosin.post.max_vars
suhosin.request.max_vars
upload_max_filesize
upload_tmp_dir

Если же нужно перегрузить другие директивы PHP, то нужно использовать локальный php.ini файл. Для его использования необходимо создать этот файл с необходимыми PHP-настройками в папке с вашими PHP-скриптами. Например, если есть необходимость изменить параметр «upload_max_filesize», «register_globals» и др. для одного из ваших скриптов, в public_html в папке скрипта, на который должны распространяться данные настройки, Вам необходимо создать файл с именем «php.ini» со следующим содержимым:


upload_max_filesize = 128M
memory_limit = 168M
max_execution_time= 60
max_input_time = 120
post_max_size = 32m
register_globals = On

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

allow_url_fopen
display_errors
error_reporting
file_uploads
include_path
log_errors
magic_quotes_gpc
mail.force_extra_parameters
max_input_vars
open_basedir
safe_mode
safe_mode_exec_dir
safe_mode_include_dir
session.save_path
short_open_tag
suhosin.get.max_value_length
suhosin.post.max_vars
suhosin.request.max_varname_length
suhosin.request.max_vars

Обращаем ваше внимание на то, что содержимое данного php.ini файла будет применено только для php-файлов директории, в которой он был создан. То есть, если директория, где был размещен php.ini файл, содержит, помимо php-файлов, еще директории со своими php-файлами внутри, то на них действие php.ini не будет распространяться. Для того, чтобы добиться обратного эффекта (говоря техническим языком, применения директив из php.ini рекурсивно), вам потребуется в.htaccess-файл каталога, где размещен php.ini-файл, добавить следующие строки: SetEnv PHPRC <прямой полный путь к php.ini файлу> После этого действие указанного php.ini файла будет распространяться также на php-файлы директорий, размещенных внутри директории, в которой расположен указанный php.ini файл.

Более подробно о настройке версии PHP и php.ini в cPanel вы можете прочитать в нашей .

Примечание: Для запуска скриптов на наших серверах виртуального хостинга реализован LiteSpeed PHP (LSPHP). То есть нет необходимости предоставлять права на запись всему веб-серверу, как это бывает на некоторых хостингах с mod_PHP на Apache.

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

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

PhpBB версии 3.* в базовой поставке содержит аж 4 варианта каптчи, которые можно предлагать пользователям при регистрации на форуме. Есть даже recaptcha , однако для автосабмиттеров, как показывает практика, это не помеха.

Эти программы знают как выглядят типовые точки входа на страницы регистрации различных форумных движков. Знание это основано на распознавании DOM-моделей вебстраниц, содержащих формы для регистрации новых пользователей, для постинга сообщений и так далее. То есть, например, в случае phpBB робот знает, что точка входа для регистрации находится по адресу /ucp.php?mode=register и что на этой странице есть кнопка вида:

Не вдаваясь в технические подробности, отмечу что найти и нажать эту кнопку в html-документе уже можно как минимум по id или по name.

Как только робот добирается до страницы с каптчей, он получает картинку каптчи и пытается распознать её. Тут могут применяться различные технологии, в зависимости от изощренности программы, от OCR-алгоритмов до простого распознавания каптчи живым человеком. Именно поэтому защита не срабатывает. Бан IP-адресов на форуме также абсолютно бесполезен, так как роботы спамят через многочисленные прокси сервера. В этом смысле нет разницы банить адреса или чистить новые авторегистрации, всё так или иначе сводится к потере времени.

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

Далее я приведу конкретный проверенный пример видоизменения страницы регистрации phpBB. Однако хотелось бы оговориться, что данный пост предлагает концепцию защиты от автоматических регистраций на форумах, а не конкретные способы. Всё зависит от рук и головы администратора форума. Желательно обладать элементарными знаниями html и css. Если читатели начнут массово копировать данный способ, то эту «эвристику» спамеры запрограммируют в свой софт и автоматические регистрации продолжатся.

Итак, выбираем настройках phpBB форума самую простую каптчу «CAPTHA без GD».
Выглядит в браузере (FF3) это так:

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

Собственно атрибут src в теге img и содержит картинку с каптчей. Открываем фолдер с текущей темой, установленной на форуме. В моем случае это prosilver: /forum/styles/prosilver/template. В нём находим файл captcha_default.html. Если посмотреть в этот шаблон, то видно место, в котором формируется вышеупомянутая разметка:

Лёгким телодвижением усложним жизнь автосабмиттерам:

Выглядеть в браузере это будет теперь так:

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


© 2024, leally.ru - Твой гид в мире компьютера и интернета