Должен ли я разрешать 'allow_url_fopen' в PHP?

У нас есть пара разработчиков с просьбой allow_url_fopen на нашем сервере. Какая норма в наши дни, и если libcurl включен, действительно ли есть какая-то веская причина?

Окружающая среда: Windows 2003, PHP 5.2.6, FastCGI

Вы определенно хотите, чтобы allow_url_include установлен на Off, что также allow_url_fopen многие риски allow_url_fopen .

Но поскольку не все версии PHP имеют allow_url_include , лучшей практикой для многих является отключение fopen. Как и во всех функциях, реальность такова, что, если она вам не нужна для вашего приложения, отключите ее. Если вам это нужно, модуль завитка, вероятно, может сделать это лучше, и рефакторинг вашего приложения для использования завитка для отключения allow_url_fopen может сдержать наименее решительный взломщик.

Я думаю, что ответ сводится к тому, насколько хорошо вы доверяете своим разработчикам использовать эту функцию ответственно? Данные с внешнего URL-адреса должны рассматриваться как любой другой недоверенный ввод, и если это понятно, в чем же дело?

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

Атаки межсайтового скриптинга – это боль, поэтому это голосование против. И у вас должно быть абсолютно разрешено « allow_url_include », или вы попадете в мир обиды.

Это зависит от типа разработки. Если ваше прототипирование, а затем включение «allow_url_fopen» в порядке, однако между libcurl и file_get_contents не существует значительной разницы в скорости, и это позволяет только удобство.

Для производственных серверов любой вызов libcurl должен быть помечен для аудита безопасности. Как и fopen и file_get_contents, если включена опция allow_url_fopen. Отключение «allow_url_fopen» не предотвращает эксплойты, это лишь немного ограничивает количество способов их выполнения.

Большая проблема заключается в том, что allow_url_fopen не более защищен , поэтому, если вы хотите сохранить файл с url с помощью curl, вы должны перейти из fopen / file_get для сохранения файла.

  • CURL полезен только для получения удаленного контента из URL. (allow_url_fopen не требуется)
  • CURL должен быть добавлен Fopen или File_get, если вы хотите сохранить удаленный файл на свой сервер. (allow_url_fopen обязательно с CURL)

Php должен найти другие способы сделать его более защищенным.