allow url fopen php ini

Allow url fopen php ini

Директивы конфигурации файловой системы и потоков

Имя По умолчанию Место изменения Список изменений
allow_url_fopen «1» PHP_INI_SYSTEM
allow_url_include «0» PHP_INI_SYSTEM Объявлена устаревшей с версии PHP 7.4.0.
user_agent NULL PHP_INI_ALL
default_socket_timeout «60» PHP_INI_ALL
from «» PHP_INI_ALL
auto_detect_line_endings «0» PHP_INI_ALL
sys_temp_dir «» PHP_INI_SYSTEM

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

Данная директива включает поддержку обёрток URL (URL wrappers), которые позволяют работать с объектами URL как с обычными файлами. Обёртки, доступные по умолчанию, служат для работы с удалёнными файлами с использованием ftp или http протокола. Некоторые модули, например, zlib, могут регистрировать собственные обёртки.

Эта опция требует включения опции allow_url_fopen.

Устанавливает отсылаемую PHP строку «User-Agent».

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

Адрес email, используемый в соединениях FTP без авторизации, а также в качестве значения заголовка From в HTTP соединениях при использовании ftp и http обёрток, соответственно.

Когда данная директива включена, PHP проверяет данные, получаемые функциями fgets() и file() с тем, чтобы определить способ завершения строк (Unix, MS-Dos или Macintosh).

Данная директива позволяет PHP взаимодействовать с системами Macintosh, однако, по умолчанию эта директива выключена, поскольку при её использовании возникает (несущественная) потребность в дополнительных ресурсах для определения символа окончания первой строки, а также потому, что программисты, использующие в системах Unix символы возврата каретки в качестве разделителей, столкнутся с обратно-несовместимым поведением PHP.

User Contributed Notes 3 notes

I’m surprised this isn’t mentioned in docs here, but to set these values at runtime use «ini_set()». For example:

// Now I can invoke fgets() on files that contain silly \r line endings.
?>

Please note that although you may try to set default_socket_timeout to something over 20s, you may get tricked by the Linux kernel.

The default value of tcp_syn_retries is set to 5, which will effectively timeout any TCP connection after roughly 20s, no matter what limits you set in PHP higher than this.

The value can be altered by root only, like this:

echo 6 > /proc/sys/net/ipv4/tcp_syn_retries

A value of 6, as above, will give you a timeout up to

If you want to use auto_detect_line_endings, e.g. to recognize carriage return on a Classic Mac file, you must set it before calling fopen. You can then reset it to its original value. E.g,

Keep in mind also that Mac OS X bash does not handle carriage returns well, so if it seems like your code is not working when testing from the command line, redirect your output to a file and then try looking at that. On my system, doing it directly on the command line only showed the last line (with or without this setting turned on).

Also note that this will not do what you want if you have a file with mixed line endings (!). If you really care about that case, you have to do something else, like run the file through a translation first and then read it.

Источник

Настройка параметров PHP

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

apc.cache_by_default

Управление APC осуществляется директивами:

default_charset

Директива указывает кодировку по умолчанию (например, cp1251, utf-8, koi8-r) для всех выдаваемых страниц.

display_errors

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

Включение и выключение осуществляются следующим образом:

log_errors

Опция позволяет включить логирование ошибок php с их записью в произвольный файл (в примере errors.log). При указании пути к файлу замените u и user на первую букву вашего логина и сам логин.

magic_quotes_gpc

Включение и выключение magic_quotes осуществляется директивами:

mail.add_x_header

Опция позволяет включить логирование отправки почты из скриптов сайта. Логи будут содержать полный путь до скрипта, адрес получателя и заголовки. При указании пути к файлу, в который будут записываться логи (mail.log), замените u и user на первую букву вашего логина и сам логин.

max_input_vars

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

mbstring.func_overload и mbstring.internal_encoding

Для корректной работы сайтов на старых версиях CMS Битрикс (до v20.100.0) требуются следующие параметры:

opcache.revalidate_freq

Отключение OpCache (настройка требуется для CMS Битрикс):

pcre.recursion_limit

Устанавливает лимит на рекурсию.

post_max_size

register_globals

Директивы для включения/выключения глобальных переменных:

request_order

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

upload_max_filesize

Устанавливает максимальный размер закачиваемого файла.

Настройка опций в файле php.ini

allow_url_fopen

Опция включает поддержку оберток URL (URL wrappers), которые позволяют работать с объектами URL по протоколам ftp или http как с обычными файлами.

Включение опции (для отключения значение = 0):

apc.cache_by_default

Отключение APC (для включения значение = 1):

default_charset

Указание кодировки по умолчанию:

display_errors

Включение вывода ошибок (для выключения значение = off).

magic_quotes_gpc

Отключение Magic Quotes (для включения значение = 1):

mail.add_x_header

Включение логирования отправки почты из скриптов сайта. В директиве mail.log указывается путь к файлу, в который будут сохраняться логи (замените u и user на первую букву вашего логина и сам логин).

max_input_vars

Изменение количества вводимых переменных:

mbstring.func_overload и mbstring.internal_encoding

Настройки для старых версий CMS Битрикс:

opcache.revalidate_freq

Отключение OpCache (настройка для CMS Битрикс):

pcre.recursion_limit

post_max_size

register_globals

Отключение Register Globals (для включения значение = 1):

request_order

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

upload_max_filesize

Устанавливает максимальный размер закачиваемого файла.

Опции, которые не могут быть изменены

К настройкам PHP, изменение которых невозможно в рамках виртуального хостинга, относятся:

Источник

Настройка во время выполнения

Директивы конфигурации файловой системы и потоков

Имя По умолчанию Меняемо Список изменений
allow_url_fopen «1» PHP_INI_SYSTEM PHP_INI_ALL в PHP allow_url_fopen boolean

Данная директива включает поддержку оберток URL (URL wrappers), которые позволяют работать с объектами URL как с обычными файлами. Обертки, доступные по умолчанию, служат для работы с удаленными файлами с использованием ftp или http протокола. Некоторые расширения, например, zlib, могут регистрировать собственные обертки.

Эта опция требует включения опции allow_url_fopen.

Устанавливает отсылаемую PHP строку «User-Agent».

Значение таймаута по умолчанию (в секундах) для потоков, использующих сокеты.

Замечание: Эта директива стала доступна с версии PHP 4.3.0

Адрес email, используемый в соединениях FTP без авторизации, а также в качестве значения заголовка From в HTTP соединениях при использовании ftp и http оберток, соответственно.

Когда данная директива включена, PHP проверяет данные, получаемые функциями fgets() и file() с тем, чтобы определить способ завершения строк (Unix, MS-Dos или Macintosh).

Данная директива позволяет PHP взаимодействовать с системами Macintosh, однако, по умолчанию эта директива выключена, поскольку при ее использовании возникает (несущественная) потребность в дополнительных ресурсах для определения символа окончания первой строки, а также потому, что программисты, использующие в системах Unix символы возврата каретки в качестве разделителей, столкнутся с обратно-несовместимым поведением PHP.

Замечание: Эта директива стала доступна с версии PHP 4.3.0

Источник

Should I allow ‘allow_url_fopen’ in PHP?

We have a couple of developers asking for allow_url_fopen to be enabled on our server. What’s the norm these days and if libcurl is enabled is there really any good reason to allow?

Environment is: Windows 2003, PHP 5.2.6, FastCGI

5 Answers 5

I think the answer comes down to how well you trust your developers to use the feature responsibly? Data from a external URL should be treated like any other untrusted input and as long as that is understood, what’s the big deal?

The way I see it is that if you treat your developers like children and never let them handle sharp things, then you’ll have developers who never learn the responsibility of writing secure code.

You definitely want allow_url_include set to Off, which mitigates many of the risks of allow_url_fopen as well.

It depends on the type of development. If your prototyping then enabling ‘allow_url_fopen’ is fine however there isn’t a significant speed difference between libcurl and file_get_contents and enabling it is only a matter of convenience.

For production servers any call to libcurl should be flagged for a security audit. As should fopen and file_get_contents if ‘allow_url_fopen’ is enabled. Disabling ‘allow_url_fopen’ does not prevent exploits it only slightly limits the number of ways they can be done.

Cross-site scripting attacks are a pain, so that’s a vote against. And you should absolutely have «allow_url_include» set to off, or you’ll be in for a world of hurt.

The big problem is that allow_url_fopen is not more secured, so if you want to save file from a url using curl, you must pass from fopen/file_get to save the file.

Php must find other ways to make it more secured.

Источник

Конфигурирование PHP

Материал из 1GbWiki.

Внимание! На хостинге 1Gb.ru конфигурация PHP настроена таким образом, чтобы максимально обеспечить режим совместимости со всеми популярными скриптами и зачастую нет необходимости изменять предустановленные параметры.

Содержание

[править] Общие сведения

Известны три способа конфигурирования PHP.

[править] Через функцию PHP ini_set()

Вызов данной функции удобно располагать в каком-нибудь конфигурационном скрипте, например, там где прописаны параметры к БД. Подробнее см. описание данной функции на сайте разработчиков ini_set().

[править] Собственный php.ini (если PHP работает в режиме CGI/FastCGI)

Собственный php.ini не дополняет настройки системного php.ini, поэтому прописав в своем php.ini только одну строку, все остальные параметры будут сброшены в значение по умолчанию. Чтобы этого не произошло, нужно скопировать системный php.ini в свой домашний каталог и уже в него вносить изменения. Скопировать правильный php.ini можно такой командой в консоли SSH:

[править] Как и где менять

[править] Windows / IIS

В такой конфигурации PHP работает только как CGI приложение.

[править] Windows / Apache

На данной платформе PHP всегда работает как модуль к WEB-серверу Apache.

Изменения вступают в силу сразу.

[править] UNIX / Apache

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

Изменения вступают в силу сразу.

ВНИМАНИЕ! Собственный php.ini полностью перезаписывает системные настройки, указав в нем всего лишь одну директиву, вы сбросите все установки PHP в исходное состояние, например, это повлечет за собой отключение Zend Optimizer, ionCube и т.п.). Чтобы этого не произошло, нужно скопировать системный php.ini в свой домашний каталог и в него вносить изменения. Скопировать можно такой командой:

Изменения вступают в силу в течение 15 минут.

Примечание. Можно ускорить вступление изменений в силу выполнив команду в шелле:

[править] PROSTO.1Gb.ru

Источник

Читайте также:  Track cannot be streamed soundcloud что делать
Образовательный портал