Вскоре после того, как Microsoft объявила о поддержке пользовательских функций JavaScript в Excel, кто-то продемонстрировал, что это может быть плачевно, если эта функция злоупотребляется в злонамеренных целях. Как и было обещано в прошлом году на конференции Microsoft Ignite 2017, компания теперь внедрила пользовательские функции JavaScript в Excel, чтобы расширить свои возможности для лучшей работы с данными.
Функции написаны в JavaScript для электронных таблиц Excel, которые в настоящее время выполняются на разных платформах, включая Windows, macOS и Excel Online, что позволяет разработчикам создавать свои собственные мощные формулы.
Исследователь по безопасности Чарльз Дардаман использовал эту функцию, чтобы показать, как легко внедрить печально известный скрипт для разработки криптовалютных браузеров из CoinHive в электронную таблицу MS Excel и запустить его в фоновом режиме при открытии.
«Чтобы запустить Coinhive в Excel, я последовал официальной документации Microsoft и просто добавил свою собственную функцию», - сказал Дардаман.
Однако следует отметить, что надстройки Excel, API-интерфейсы, которые отвечают за выполнение пользовательских функций JavaScript, не выполняются по умолчанию сразу после открытия встроенной электронной таблицы JS. Вместо этого пользователям необходимо вручную загружать и запускать функции JavaScript через функцию надстроек Excel в первый раз, а затем автоматически запускаться при каждом открытии файла Excel в той же системе.
Когда вы пытаетесь запустить функцию JavaScript в листе Excel, который подключается к внешнему серверу, Microsoft предлагает пользователю разрешить или запретить соединение, предотвращая выполнение неавторизованного кода. Поэтому JavaScript для Excel сегодня не представляет большой угрозы, если только и пока кто-то не найдет способ выполнить его автоматически, не требуя какого-либо взаимодействия с пользователем.
Microsoft также подтвердила, что надстройки Excel в настоящее время полагаются на скрытый процесс браузера для запуска асинхронных пользовательских функций, но в будущем он будет запускать JavaScript непосредственно на некоторых платформах для сохранения памяти.
На данный момент пользовательские функции JavaScript для Excel были доступны в версии предварительного просмотра разработчика для Windows, Mac, iPads и Excel Online только для подписчиков Office 365, зарегистрированных в программе MS Office Insiders.