Комментарии 20
Это прям черная дыра безопасности
может слегка не по теме, но есть целая программка HFS которая осуществляет обмен расшаренными файлами через протокол http
Ооо, с далёких нулевых пользовались для шаринга файлов в локальной сети
ей можно шарить и через интернет по текущему активному внешнему 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, которые неприспособлены нормально работать с файлами (даже битрикс с его аналогом яндекс диска оказался полной шляпой) в виде ссылок на файлы на ПК пользователя или на сервере в локалке.
В итоге, без предварительной настройки ПК нельзя просто так вызвать любой путь, с любыми параметрами.
Не знаю почему, но напомнило старый анекдот:
"Здравствуйте, я молдавский вирус. По причине ужасной бедности моего создателя и низкого уровня развития технологий в нашей стране я не способен причинить какой-либо вред Вашему компьютеру. Поэтому очень прошу Вас, пожалуйста, сами сотрите какой-нибудь важный для Вас файл, а потом разошлите меня по почте другим адресатам. Заранее благодарю за понимание и сотрудничество"
Как из браузера открыть папку в проводнике Windows