Добавление SMB в Windows, насколько это безопасно?

Я наткнулся на небольшой взлом, который утверждает, что он включает smb: // на окнах.
Жалоба была на то, что такие вещи, как <a href="\\computername\path\file.ext">text</a> не работал
Несмотря на то, что вы можете использовать file: ///// в своих URL, пользователь хотел использовать smb: //, чтобы он был кроссплатформенным.

Взлом происходит следующим образом:
1) Создайте этот Reg-файл, сохраните и выполните его:

REGEDIT4

[HKEY_CLASSES_ROOT\smb]
@="URL:smb Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\smb\shell]

[HKEY_CLASSES_ROOT\smb\shell\open]

[HKEY_CLASSES_ROOT\smb\shell\open\command]
@="\"C:\\smb.bat\" \"%1\""

И затем создайте файл smb.bat в вашей C-папке, содержащий это:

@echo off
cd C:\
set url=%~dpnx1
explorer \%url:~7%
exit

Мой вопрос: насколько это безопасно и какие-либо другие мысли по этому поводу? Помимо файла: /////, что я имею в виду.

3 ответа

Решение

Для меня это выглядит чертовски опасно, поскольку позволяет любому веб-сайту размещать URL-адреса "\\RESOURCENAME", которые будут работать независимо от контекста, и smb.bat будет вызван, если вы нажмете такую ​​ссылку. Я не совсем понимаю синтаксис пакета (особенно часть), но мне кажется, что можно передать любой аргумент explorer.exe,

Вероятно, нет непосредственной опасности, потому что очень маловероятно, что злоумышленник предположит, что вы настроили это. Тем не менее, безопасно это не так.

Я бы предпочел, чтобы сервер обнаруживал для Windows-клиентов схему вывода \servername\path для тех и smb:// для всего остального.

Не говоря уже о том, что SMB - не единственный протокол, который использует этот синтаксис, как и любая другая файловая система, такая как WebDAV. Хотя это несколько умная идея, и я бы хотел, чтобы smb:// тоже работал.

Другие вопросы по тегам