Недавно я изучал X Windowing System и обнаружил, что рисовать окно, созданное другим процессом, довольно тривиально.Все, что вам нужно, это идентификатор окна.Я не уверен, как идентификаторы окон и другая существующая информация о окнах извлекаются по основному протоколу X11, но это вполне возможно, поскольку существует простая утилита X11 под названием xwininfo, которая делает именно это.
xwininfo не требуетпривилегии root, а также не требуются привилегии root для рисования на окнах, созданных другими приложениями.На самом деле, я просто рисовал пиксели прямо в существующем окне терминала без каких-либо повышенных привилегий из пользовательского пространства.
Разве это не проблема безопасности?Тот факт, что любое приложение может рисовать в окнах любого другого приложения, может вызвать проблемы, такие как неделимые рекламные объявления, создаваемые вредоносными программами.
В чем причина этого?Было бы легко сгенерировать, скажем, общий ключ HMAC для каждого окна, и чтобы клиент подписывал каждый запрос.
Моя первая догадка, очевидно, заключается в производительности - если для рисования потребовалось подписать и проверить клиентские запросы.несколько пикселей в окне, вероятно, будет заметная задержка.Тем не менее, задержка, вероятно, все еще будет незначительной для многих простых настольных приложений, так почему же нет никаких мер безопасности, даже необязательных?Я что-то упустил?