Имеет PHP ignore_user_abort () функционировать какие-либо последствия для безопасности?
Я думаю в DoS. Например, когда функция подвергается анонимному трафику в некотором коде, который является дорогостоящим ресурсом.
В дополнение к предыдущему ответу я хотел бы добавить, что риск не больше, а немного смещен.
Если цель состоит в том, чтобы перегрузить сервер, многократно вызывая дорогой скрипт, ясно, что вызов ignore_user_abort(true);
освобождает злоумышленника от необходимости держать соединение открытым. Тем не менее, скрипт продолжит выполнять состояние соединения и потреблять ресурсы.
В отличие от без ignore_user_abort(true);
скрипт завершит свое выполнение на первом выходе (если ничего не получится, скрипт будет потреблять так же, как и первый вариант [1]).
В случае DoS-атаки (и особенно DDoS-атаки) у злоумышленника, скорее всего, нет абсолютно никаких проблем с открытием (и удержанием в открытом состоянии) большого количества соединений. Поэтому с этой точки зрения ignore_user_abort
не имеет значения.
Я не могу думать о дальнейших последствиях безопасности, связанных с использованием этой функциональности.
Я бы даже сказал, что большинство разработчиков PHP на самом деле не знают, что выполнение их скриптов может остановиться где-то посередине только из-за потери соединения. Я думаю, что большинство будет предполагать, что их сценарии будут выполняться до конца во всех случаях, хотя это не настройка по умолчанию.
Я не вижу никаких прямых последствий для безопасности ignore_user_abort () функция
С точки зрения DoS атака, учитывая, что содержащий скрипт
проблема должна быть связана с перегрузкой сервера, которая может привести к временному или неопределенному прерыванию или приостановке обслуживания.
По возможности было бы разумно найти альтернативы для такого ресурса дорогостоящего кода:
Надеюсь, это поможет.