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

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

Среда: Windows 2003, PHP 5.2.6, FastCGI

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

Атаки межсайтового скриптинга - это боль, поэтому голосование против. И у вас должно быть абсолютно " allow_url_include" отключено, или вы попадете в мир обиды.

Ответ 4

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

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

Ответ 5

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

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

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