Почему каналы считаются опасными для использования в Windows / unix / linux? - PullRequest
7 голосов
/ 10 октября 2008

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

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

1 Ответ

16 голосов
/ 10 октября 2008

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

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

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

...