2013-08-15 5 views
3

При работе с проблемами прерывания сигнала, Ctrl-C SIGINT закрывает мою сессию ssh. (Я уверен, что вы все это слышали раньше, и мне тоже это надоело, поэтому я не буду об этом объяснять.) Короче говоря, я мог бы достичь желаемого результата, используя функцию SendKeys.Почему плохой практики SendKeys?

Теперь многие люди препятствуют использованию SendKeys, если это не абсолютно необходимо. Этот метод часто устраняется из-за недостатков безопасности, но единственная жизнеспособная причина, которую я вижу (но не полностью понимаю), заключалась в том, что она могла заполнять буфер клавиатуры, что при плохой обработке может привести к нежелательным результатам системы.

Любая другая причина была всего лишь общим «Она вызывает проблемы с безопасностью. Не используйте ее». Я читал, что это может значительно помочь блокировать взаимодействие мыши и клавиатуры во время процесса, например, с использованием BlockInput.

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

ответ

2

Этот использовал, чтобы быть действительным в отношении безопасности перед UAC. Например, вы можете выдать ATL + CTRL + DEL или скопировать информацию из одного приложения во вредоносную или запустить ключевые сценарии без согласия пользователя.

Скорее всего, многие приложения (даже прямые x) заблокируют SendKeys, и вы получите исключения безопасности.

Использовать SendMessage или SendInput в качестве альтернативы.

С внедрением .NET 3 и контроля учетных записей пользователей эти пробелы были закрыты. Фактически, на этой неделе окна 8 были оценены как безопасные для правительства.

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

Смежные вопросы