У нас есть пара разработчиков с просьбой 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 должен найти другие способы сделать его более защищенным.