Как отключить php safe mode

Setting safe mode to OFF in .htaccess file does not work

I’m on a server with safe mode on. Now the server allows .htaccess files. I have one in my public_html folder with settings of WordPress. Now in a sub-domain i want to insert an .htaccess file that dsiables safe mode. i Tried theese:

php_value safe_mode 0 php_flag safe_mode 0 php_value safe_mode off php_flag safe_mode off 

but none worked. Anyone knows how can i do that? I Can not ask the server owner to disable safe mode, and basicly can’t ask him anything.

The server owner can prevent safe mode from being turned off. That might be the reason why this doesn’t work — or PHP isn’t running as an Apache module

3 Answers 3

It is not possible to change the value of safe_mode in .htaccess . The configuration setting can only be set in php.ini or httpd.conf , as is explained in the manpages

It also wouldn’t be safe if it could be set in .htaccess . And it’s removed in PHP 5.4, so that could be an argument to tell your hoster to disable it for you.

Читайте также:  Примеры страницы контакты html

It sounds like he doesn’t allow you to override safe mode. Which makes sense because what would be the point in running a shared server in safe mode if anyone could disable it as they saw fit. You’re probably going to need to relocate to a server without safe mode as the only options for changing that value are not going to work for you. Safe mode is already deprecated and is not meant to be used. The «safe» way for a server owner to handle security is through the OS and setting up correct account permissions.

I have managed to disable safe_mode by following instructions from Marco Demaio in last answer in this question How to turn off php safe_mode off for a particular directory in a shared hosting environment?

I hope it works for you too!

This question is in a collective: a subcommunity defined by tags with relevant content and experts.

Источник

Безопасность и безопасный режим

Включает/отключает безопасный режим в PHP. Если PHP скомпилирован с опцией —enable-safe-mode, то по умолчанию принимает значение On (включено), иначе — Off (выключено).

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

По умолчанию в безопасном режиме при открытии файла выполняется проверка значения UID. Для того, чтобы немного смягчить это условие и выполнять проверку GID, необходимо установить значение on для флага safe_mode_gid. Определяет, использовать ли проверку UID ( FALSE ) или GID ( TRUE ) проверку при обращении к файлу.

При подключении файлов, расположенных в указанной директории и всех ее подкаталогах, проверка на соответствие значений UID/GID не выполняется (в случае, если установленная директория не указана в include_path, необходимо указывать полный путь при включении).

Значением этой директивы может быть список каталогов, разделенных двоеточием (точкой с запятой на Windows-системах), что аналогично синтаксису include_path. Указанное значение в действительности является префиксом, а не названием директории. Это означает, что запись «safe_mode_include_dir = /dir/incl» позволяет подключать файлы, находящиеся в директориях «/dir/include» и «/dir/incls«, в случае, если они существуют. Если вы хотите указать доступ к конкретной директории, используйте завершающий слеш, например: «safe_mode_include_dir = /dir/incl/» Если значение этой директивы пусто, то никакие файлы с отличающимися UID/GID не могут быть подключены. safe_mode_exec_dir string

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

Возможность устанавливать переменные окружения — потенциальная брешь в безопасности. Значением этой директивы является список префиксов, разделенных двоеточиями. В безопасном режиме пользователь может модифицировать только те переменные окружения, имена которых начинаются с одного из указанных префиксов. По умолчанию, пользователю доступны переменные, которые начинаются с префикса PHP_ (например, PHP_FOO=BAR).

Замечание:

В случае, если этой директиве указать пустое значение, пользователь получит возможность модифицировать ЛЮБУЮ переменную окружения!

Эта директива содержит список переменных окружения, разделенных двоеточием, значение которых пользователь не сможет изменить, используя функцию putenv() . Значения этих переменных остаются защищенными, даже если их модификация разрешена директивой safe_mode_allowed_env_vars.

В случае, если включена директива safe_mode, PHP проверит, совпадает ли владелец скрипта и владелец файла или директории, которыми оперирует скрипт. Например:

-rw-rw-r-- 1 rasmus rasmus 33 Jul 1 19:20 script.php -rw-r--r-- 1 root root 1116 May 26 18:01 /etc/passwd
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

Тем не менее, предусмотрена возможность вместо проверки на соответствие UID использовать более мягкую проверку на соответствие GID. Для этого необходимо использовать директиву safe_mode_gid. В случае, если она установлена значением On, используется более мягкая проверка GID. В противном случае, если установлено значение Off (значение по умолчанию), выполняется более строгая проверка на соответствие UID.

В качестве альтернативы директиве safe_mode вы можете ограничить все выполняемые скрипты жестко заданным деревом директорий при помощи опции open_basedir. Например (фрагмент конфигурационного файла httpd.conf ):

 php_admin_value open_basedir /docroot 

При попытке выполнить тот же самый скрипт script.php с указанной опцией open_basedir вы получите следующий результат:

Warning: open_basedir restriction in effect. File is in wrong directory in /docroot/script.php on line 2

Вы также можете запретить отдельные функции. Следует заметить, что директива disable_functions может быть указана исключительно в конфигурационном файле php.ini , это означает, что вы не можете, отредактировав httpd.conf , установить индивидуальные значения для конкретного виртуального хоста или каталога. Если добавить в php.ini следующую строку:

disable_functions = readfile,system
Warning: readfile() has been disabled for security reasons in /docroot/script.php on line 2

Разумеется, эти ограничения PHP не работают в запускаемых программах.

Источник

Как отключить php safe_mode для определенного каталога в общедоступной среде хостинга?

Привет, я использую общий хостинг. Я хочу отключить php safe_mode для моего сайта. Мой провайдер дал мне файл php.ini и попросил меня поместить его с моими настройками в мою папку public_html, чтобы переопределить настройки, но это не сработало.

Вы также можете попытаться создать файл php.ini в корневой папке (public_html или другой) и поместить в него следующее:

В зависимости от настроек сервера это может работать или не работать.

Возможно, ваш поставщик услуг забыл сообщить вам, что вам нужно включить определенную пользователем конфигурацию php.ini, добавив эту строку в файл .htaccess, который вы найдете в своей папке public_html:

#Activates php.ini config located in main folder to work also recursively for all subfolders suPHP_ConfigPath /home/YOUR_CPANEL_USER_NAME/public_html 

Очевидно, замените YOUR_CPANEL_USER_NAME своим именем пользователя cPanel.

Я предполагаю, что ваш сервер имеет модуль suPHP (что довольно часто встречается в сегодняшних днях).

BTW: файл php.ini должен быть в / home / YOUR_CPANEL_USER_NAME / public_html тоже, и внутри вы должны написать это:

И помните, что безопасный режим устарел в PHP 5.3.0 и удален в PHP 6.0.0.

Вы можете отключить его, добавив следующую строку в файл .htaccess в вашей корневой (общедоступной html) папке.

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

Источник

How to turn PHP safe mode off?

Have you ever experienced something like this? Everything is going well as you work on a PHP project until you suddenly see an error message stating that “safe mode is turned on.” It’s annoying to have your progress blocked by this unforeseen issue because you don’t know what this means or how to fix it.

We’re here to help, so don’t worry! This article will describe PHP safe mode, show you how to disable it, and explain why you should usually leave it on unless it is absolutely necessary to turn it off.

What is PHP Safe Mode?

In PHP 4.2, a security feature called safe mode was added to defend users and servers from harmful behavior. Many PHP installations have it turned on by default, but the server administrator or hosting company can disable it.

Using a function or feature that safe mode restricts could result in the safe mode error. This is likely to come up if you are a developer working on a PHP project. This most often happens if you’re working with a shared hosting account where safe mode is most likely to be enabled without you deciding to do so.

How to Turn Off Safe Mode

There are two possible scenarios for how to turn off safe mode:

Scenario 1: The “safe_mode” directive is set to “On” for both the Master Value and the Local Value

If you find yourself in this situation, you’ll want to follow these steps to turn off safe mode:

  • On your server, look for the “php.ini” file. The precise location of this file may change based on your server configuration, however it is typically found in the “php” or “conf” directory.
  • Open the “php.ini” file using a text editor such as nano or vi.
  • Look for a line showing the phrase “safe mode = On”. This line will be located in the file’s “Safe Mode” section.
  • Change “On” to “Off” so that it now says “safe mode = off
  • Close the text editor after saving the document.
  • Restarting your web server software (such as apache or nginx) may be required for the changes to take effect.

As an alternative, consider include the next line in an.htaccess file in the web root directory:

php_flag safe_mode Off

However, this approach might not be effective on all servers, so you might need to get in touch with your web host or server administrator for help turning off safe mode.

Scenario 2: The “safe_mode” directive is off for the Master Value, but on for the Local Value

If you find this to be the case, Safe mode has been turned off globally, but it has been turned back on for your particular PHP installation or for the specific website you’re working on. Follow the instructions in Scenario 1 for disabling safe mode for your individual PHP installation or setup. In this scenario, php.ini probably is already set correctly, while .htaccess probably is causing the problem, so focus your efforts there first.

If these directions don’t work for you, or if you’d like to try something else, it is worth checking if safe mode has been enabled by a different configuration file. Here are some things to consider:

  • PHP’s configuration can be altered by other files, such as “user.ini”
  • Webserver config files, can sometimes influence php settings. You might check “httpd.conf” if using apache or “nginx.conf” is using the nginx webserver.
  • Individual PHP scripts may be modifying the safe mode behavior at runtime. It is worth checking if this is a known problem for the PHP script you’re using.

If you’re still stuck, you should consider asking the server administrator, the company who made your PHP script, or your hosting provider for help to turn off safe mode.

That’s it!

We’ve described PHP safe mode and how to disable it in this article. Disabling safe mode may be necessary in some circumstances, but it is typically not advised because it can expose your PHP scripts and server to security concerns. Only when your script absolutely requires features that are blocked by safe mode, should you turn it off.

If you must disable safe mode, be sure you are aware of the dangers and take the necessary procedures to safeguard your scripts and defend your server from intrusion. This may involve using secure passwords, updating your plugins and software, and adhering to the best coding and server management practices.

Do You Love Servers?

We do! Look no further than IOFLOOD if you’re seeking for a web host that can offer a dedicated server for your projects. As a leading web host, we are dedicated to assisting our customers in succeeding by offering dependable and secure hosting solutions. With a variety of features and resources, our dedicated servers can accommodate any project’s needs, from tiny websites to huge apps. You can be sure that your projects will be in capable hands with IOFLOOD thanks to our knowledgeable support staff and cutting-edge infrastructure.

Источник

Оцените статью