Почему каналы считаются опасными для использования в Windows / Unix / Linux?

StackOverflow https://stackoverflow.com/questions/192021

Вопрос

Почему трубы считаются опасными для использования? Что можно сделать, чтобы избежать этих проблем безопасности?

Меня больше всего интересует Windows, но если у вас есть другая информация об ОС, пожалуйста, предоставьте.

Это было полезно?

Решение

(предполагается, что вы говорите об именованных каналах Unix из упоминания 'c' и 'IPC'. Именованные каналы Windows работают несколько иначе)

Каждый, у кого есть разрешения, может писать в именованный канал, поэтому вы должны быть осторожны с разрешениями и блокировками (см. flock () ). Если приложение доверяет входным данным, которые оно получает из именованного канала (что обычно имеет место, если вы явно не встраиваете проверку входных данных в него), злонамеренный пользователь может записать любые желаемые данные в именованный канал, если у них есть разрешение.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top