Я работал над приложением PHP, которое использует fpassthru
встроенная функция, которая считывает содержимое из указателя потока или файла и выводит его в выходной буфер. Это очень похоже на файл для чтения
функция, но позволяет мне начать вывод с определенного смещения.
Большинство хостинг-провайдеров, с которыми я тестировал свой продукт, работали просто отлично, включая общие мультитенантные хостинговые среды. Тем не менее, я нашел несколько, которые имеют fpassthru()
функция "отключена по соображениям безопасности". Я часами исследовал, почему кто-то может отключить fpassthru
функцию, но не такие функции, как fopen
, фред
, file_get_contents
, а также файл для чтения
, но я не мог найти ничего полезного.
Возможно, это звучит глупо, но, по моему мнению, эти хосты отключены. fpassthru
принимая это за пройти
, что действительно требует отключения, особенно в общих средах. Сказав это, фактический пройти
функцию (вместе с исполнитель
и остальная часть семьи) также были отключены на этих хостах.
Я попытался связаться с этими хостами и спросил их, почему.
Я не мог получить прошлые продажи в Flywheel, они сказали, что не могут ответить на мой вопрос, и только поддержка может. А для того, чтобы обратиться в службу поддержки, я должен стать клиентом. Классический.
Сначала RunCloud казался немного более многообещающим, я дозвонился до «Системного инженера 3-го уровня», и еще несколько дней потребовалось, чтобы добраться до «Старшего системного инженера», от которого я получил следующее заявление:
это лучшая практика для PHP в RunCloud, и это лучшая практика для нас
Я попросил их уточнить, но давно ничего не слышал, поэтому потерял надежду.
Просто чтобы уточнить, я не ищу обходных путей fpassthru()
. Я ищу причины, по которым он иногда указывается рядом с «опасными» функциями, такими как выполнение()
, система()
, пройти()
, pcntl_fork()
и другие, имея прочитать файл()
, file_get_contents()
и т.д. работают просто отлично.
Если у вас есть какие-либо идеи, пожалуйста, поделитесь!