VB: получить информацию о вызывающем приложении скомпилированной DLL;COM безопасность - PullRequest
1 голос
/ 15 октября 2010

Через COM можно получить абсолютный контроль над целевой системой. Например: используя объект ActiveXObject javascript в IE, можно создавать определенные объекты, которые были разработаны для прямого доступа или взаимодействия с системными свойствами и файлами. Можно подумать, что здравый смысл диктует пользователям отключать функции ActiveX в IE сразу после установки браузера, чтобы обеспечить защиту их системы во время серфинга в сети или, по крайней мере, уделять пристальное внимание тому, какие веб-сайты они разрешают. Но я сомневаюсь, что многие среднестатистические пользователи ПК знают, как и зачем это делать, или просто устали от управления ими в течение долгого времени. Я думаю, что любой пользователь ПК или администратор, к которому относится мой класс COM, был бы очень признателен, если бы с этим не сталкивались. К счастью, похоже, что версии IE поставляются в комплекте с ActiveX, отключенным по умолчанию в настоящее время.

Я создал очень универсальную библиотеку классов COM в VB. Я не собирался вызывать его с любого веб-сайта, но эта функция является лишь частью платформы COM. Я хотел бы запретить вызов библиотеки из IE, если веб-сайт не находится в домене, занесенном в белый список, для проактивной защиты пользователя (и, в конечном счете, всей его внутренней сети) от вреда от вредоносных веб-сайтов. Каков наилучший метод в VB.Net, чтобы сказать, какое приложение вызвало мою DLL, чтобы можно было определить, вызывается ли оно из какой-либо команды или процесса, происходящего из IE? И какой домен называется моей DLL?

Редактировать: Я считаю, что это может быть дубликатом. См .: Вызов сборки для получения имени приложения VB.NET

System.Environment.GetCommandLineArgs()(0) возвращает мне путь к вызывающему приложению. С помощью этой информации я могу сравнить ее с черным / белым списком приложений. На данный момент проблема решена.

Ответы [ 2 ]

2 голосов
/ 15 октября 2010

Не отмечайте элемент управления как безопасный для сценариев.

Настройки безопасности по умолчанию не позволяют создавать сценарии для таких элементов управления.

0 голосов
/ 29 октября 2010

Самоответ, и, возможно, дубликат, я полагаю.См. System.Environment.GetCommandLineArgs()(0) из Вызов Assembly для получения имени приложения VB.NET

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

...