Последствия для безопасности функции ignore_user_abort ()

Имеет PHP ignore_user_abort () функционировать какие-либо последствия для безопасности?

Я думаю в DoS. Например, когда функция подвергается анонимному трафику в некотором коде, который является дорогостоящим ресурсом.

1

Решение

В дополнение к предыдущему ответу я хотел бы добавить, что риск не больше, а немного смещен.

Если цель состоит в том, чтобы перегрузить сервер, многократно вызывая дорогой скрипт, ясно, что вызов ignore_user_abort(true); освобождает злоумышленника от необходимости держать соединение открытым. Тем не менее, скрипт продолжит выполнять состояние соединения и потреблять ресурсы.
В отличие от без ignore_user_abort(true); скрипт завершит свое выполнение на первом выходе (если ничего не получится, скрипт будет потреблять так же, как и первый вариант [1]).

В случае DoS-атаки (и особенно DDoS-атаки) у злоумышленника, скорее всего, нет абсолютно никаких проблем с открытием (и удержанием в открытом состоянии) большого количества соединений. Поэтому с этой точки зрения ignore_user_abort не имеет значения.

Я не могу думать о дальнейших последствиях безопасности, связанных с использованием этой функциональности.

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

1

Другие решения

Я не вижу никаких прямых последствий для безопасности ignore_user_abort () функция

С точки зрения DoS атака, учитывая, что содержащий скрипт

  • ресурс дорогой
  • подвергается анонимному трафику

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

По возможности было бы разумно найти альтернативы для такого ресурса дорогостоящего кода:

  • Если содержащий скрипт используется для имитации задачи cron, было бы разумно использовать crontab.
  • Если возможно, было бы разумно установить программные ограничения, чтобы запускать только один экземпляр такого дорогостоящего кода такого ресурса, независимо от того, сколько страниц попадет в содержащий скрипт.

Надеюсь, это поможет.

2

По вопросам рекламы [email protected]