Насколько сильно bash-скрипт может взаимодействовать с запущенным веб-браузером? [закрыто]

Одна очевидная причина, по которой .desktop не обязательно имеет установленный бит исполняемого файла, заключается в том, что эти файлы изначально не предназначались для выполнения. Файл .desktop содержит метаданные, которые сообщают среде рабочего стола, как связать программы с типами файлов, но никогда не предназначались для выполнения самостоятельно.

Однако, поскольку файл .desktop косвенно указывает графической среде, что выполнять, он имеет косвенную возможность запускать любую программу, определенную в нем, открывая дверь для эксплойтов. Чтобы вредоносные файлы .desktop не несли ответственность за запуск враждебных или нежелательных программ, разработчики KDE и gnome представили специальный хак, который несколько отклоняется от предполагаемой цели разрешения на выполнение файлов Unix для добавления уровня безопасности.С этим новым слоем среда рабочего стола учитывает только файлы .desktop с установленным исполняемым битом.

Простое превращение неисполняемого файла, такого как .desktop, в исполняемый было бы сомнительной практикой, поскольку это связано с риском. Небинарные исполняемые файлы без шебанга выполняются оболочкой (будь то bash или sh или что-то еще). Запрос оболочки на выполнение файла, который не является сценарием оболочки, приводит к непредсказуемым результатам.

Чтобы избежать этой проблемы, в файлах .desktop должен присутствовать шебанг, который должен указывать на правильную команду, предназначенную для их обработки, xdg-open, например Thunderbird делает следующее:

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=Thunderbird
GenericName=Email
Comment=Send and Receive Email
...

В этом случае выполнение файла .desktop сделает все, что xdg-open (и ваша среда рабочего стола) считает правильным, возможно, просто открытие файла в браузере или текстовом редакторе, что может оказаться не таким, как вы ожидаете.

1
16.01.2015, 13:01
0 ответов

Теги

Похожие вопросы