VC ++ означает разные вещи для различных людей. Можно использовать среду Visual Studio для создания (почти) стандартных приложений C++. Можно также использовать его для Micrososft-определенных дополнений - которые варьируются от версии до версии. Например, компоненты MFC для приложений Windows или более новый C++ / CLI для приложений.NET
Проблемы безопасности, о которых вы упомянули, сами по себе не связаны с «разрешением пользователю вызывать код Python», который выполняется с высокими уровнями доступа, но позволяют пользователю использовать любую форму управлять запуском такого кода - наиболее очевидно, путем внедрения или изменения самого кода, но, более тонко, также путем управления средой этого процесса (и, следовательно, путем, из которого этот код импортирует модули, например) . (Аналогичные проблемы могут возникнуть и с кодом, написанным на C, если пользователь сможет контролировать путь, из которого последний загружает, например, .so
- хотя ОС может помочь более непосредственно с такой проблемой) .
Мне кажется, что pam_python
хорошо защищен от таких рисков, и поэтому его следует безопасно использовать для ваших целей.
большое снижение производительности и
требует установки Python, поэтому
не лучший вариант для написания
модули, которые будут широко использоваться.
Итак, если вы правы в том, что предоставляемый вами механизм будет популярным, вы, вероятно, захотите написать свой модуль на C, чтобы избежать этих проблем. Однако создание его прототипа на Python в качестве доказательства концепции с ограниченным распространением, прежде чем закрепить его на C, является жизнеспособной стратегией.