Как стать автором
Обновить

Комментарии 20

Это прям черная дыра безопасности

телеграм так же открывается. и ничего, не дыра.

Телеграмм не передаёт произвольный экзешник в Эксплорер, попробуйте открыть исполняемый файл этой ссылкой. А если это URL ?

Есть много обработчиков протоколов. Но конкретно этот батник с дырой.

может слегка не по теме, но есть целая программка HFS которая осуществляет обмен расшаренными файлами через протокол http

https://www.rejetto.com/hfs/

Ооо, с далёких нулевых пользовались для шаринга файлов в локальной сети

ей можно шарить и через интернет по текущему активному внешнему ip твоего ПК

Более того, там ещё аплоад можно разрешить, очень удобная фича - сам себе клауд сторадж: особенно круто на удалённом компе автоматом настроить скрипт по заданным правилам загружаемое например по папкам сортировать (перемещать/запускать/удалять, "вашедействие", и т.д.)

Представьте, что у вас возникла необходимость прямо с веб-страницы заказа в вашей CRM-системе открывать папку с файлами, которые к этому заказу ототносятся

как такой дизайн процесса кому-то в голову может придти?! Сколько людей могут/будут работать с этим заказзом? А что если этот единственный человек, на диске которого лежат эти документы помрёт/полетит диск/забудет свой логин/ зайдёт через мобильное приложение и тд.? Как локальная папка может быть занесена в базу CRM? Даже, если это будет папка в лок.сети - боже избавь от такого архитектора.

Тот костыль, что вы изобрели - дичайщее пробитие дна и адищенская дырень в безопасности. Надеюсь что читатели вашей статьи дойдут до комментов и никогда не станут заниматься таким когнитивным онанизмом. А уж в корп.среде ваши ИБ обязаны были не только вас уволить, так ещё и физически сжечь все сервера и машины мимо которых вы могли ходить. Зная ваш протокол я буквально могу со своей страницы перебрать все файлы на вашем компе. Я уж молчу про .bat файл который вы можете запускать. Короче просто раззнайте это обратно, или хотя бы напишите наверху статьи капсом что так делать нельзя.

А вот как надо было: https://developer.mozilla.org/en-US/docs/Web/API/FileSystem

Уже давно есть готовое API для работы с файловой системой, с понятным ограничении доступа и внятными правами. Нормально поддерживается. Так работают различные системы для ведения заметок, из того что встречал. Они выполнены как онлайн сервис но хранят данные как файлы оффлайн, обычно в маркдауне.

Ну а что вы сразу продакшн. Я прикрутил к своей личной Докувики по этой инструкции, очень удобно, автору спасибо.

Это не идея автора это легко гуглится.

Автор, уберите пожалуйста этот cmd injection, чтобы неокрепшие умы не копипастили баг в свои CRM системы.

проще да, но безопаснее уже сделать electron-приложение, оно умеет открывать файлы и папки с диска, там можно и авторизацию и прочее добавить, и в Linux/MacOS
будет работать

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

  • Взаимодействие с локальной файловой системой из веб-сайта, который де-факто, де-юре, априори, по второму закону термодинамики и по здравому смыслу должен быть изолирован от ФС на клиентской машине. Взаимодействие происходит через протокол, который легко заабузить

  • Создание решений, запрещенных Женевской конвенцией: батник в корне C:\

  • Требование админских прав как преступление против безопасников человечности. Их ведь тупо может и не быть!

  • Заведомый наброс на вентилятор (обсуждаемо, будет решено на Гаагском трибунале). Слишком толсто, попробуйте потоньше

    Прошу всех, у кого глаза не вытекли кровью после прочтения статьи, не повторять описанные ими шаги ни в кровавом энтерпрайзе, ни в стартапе, ни клиентам на галере, даже если менеджер это одобрит! Только на собственной локальной машине (если IQ ниже 50), на виртуальной машине или песочнице (Windows Sandbox).

Задача, на самом деле, интересная. Например, я рабочих целей тоже начал разработку маленькой программки, которая вызывается ОС для обработки протокола, при этом после начала схемы идет идентификатор корневой папки. К примеру, при вызове
myproto://YDISK/Хрень по работе\Гемор\Тупые клиенты\Неплательщики\охреневшие\Уважаемый Сергей Анатольевич.doc
программа знает заранее, какая корневая папка задана для YDISK, и открывает соответствующий путь.
В контекстном меню проводника появляется дополнительный пункт типа "Скопировать путь для MyProtoViewer". Программа получает путь в параметр, анализирует, совпадает ли какая-то из нескольких корневых папок с началом пути, и формирует в буфер обмена ссылку вида

myproto://GDRIVE/Архив для маркетинга.zip

Это полезно для всяких диких CRM, которые неприспособлены нормально работать с файлами (даже битрикс с его аналогом яндекс диска оказался полной шляпой) в виде ссылок на файлы на ПК пользователя или на сервере в локалке.

В итоге, без предварительной настройки ПК нельзя просто так вызвать любой путь, с любыми параметрами.

Не знаю почему, но напомнило старый анекдот:

"Здравствуйте, я молдавский вирус. По причине ужасной бедности моего создателя и низкого уровня развития технологий в нашей стране я не способен причинить какой-либо вред Вашему компьютеру. Поэтому очень прошу Вас, пожалуйста, сами сотрите какой-нибудь важный для Вас файл, а потом разошлите меня по почте другим адресатам. Заранее благодарю за понимание и сотрудничество"

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории