C #, безусловно, позволяет запускать пользовательский скрипт. System.Diagnostics.Process
делает это действительно легко. Вопрос безопасности здесь является еще одной проблемой.
Выполнение сценариев после завершения процесса может быть невероятно полезным и может повлиять на мнение целевой аудитории о вашем приложении. Понятно, что вы не хотите, чтобы ваш продукт был направлен против ваших собственных потребителей с помощью злонамеренного взлома, как вы думаете.
Корень этой проблемы в том, что ваши параметры (я предполагаю) основаны на тексте и легко редактируются. Лучше всего зашифровать ваш конфигурационный файл, чтобы предотвратить внешние изменения в нем. Обратите внимание, что это не мешает людям использовать ваше приложение, чтобы изменить ваши параметры, чтобы разрешить вредоносный скрипт, но для того, чтобы это сделать, им нужен доступ к экземпляру вашего приложения, а не просто доступ на чтение / запись к файлу.
Это ставит под сомнение еще один аспект, на который вам следует обратить внимание. Не используйте один и тот же ключ для каждой установки вашего приложения. Если вы сделаете это, то Боб может заставить Алису запустить вредоносный скрипт, скопировав конфигурацию Алисы, используя его экземпляр вашего приложения, чтобы расшифровать его и внести изменения, и тогда Боб сможет заменить конфигурацию Алисы новой вредоносной конфигурацией.
Вот еще один вопрос о том, как зашифровать строки в C #.