我正在使用一堆WIN32 API调用,需要一些不安全的代码的项目。从最佳实践的角度来看,我应该隔离在其自己的DLL的代码与/不安全开关编译,同时保持我的主要应用程序安全吗?

要换一种方式。有什么理由不编译与/不安全开关项目?是否有任何潜在的风险?

有帮助吗?

解决方案

的组件是由定义在.NET独立地可版本,重新发布的代码的最小单位。因此,我都会问自己的第一个问题就是“我是永远会想使不安全的代码的新版本和独立分发我的应用程序吗?”

如果答案是肯定的,然后通过各种手段,把这些代码在其自己的组件。

如果答案是否定的,则考虑其他因素。例如,在“经典” .NET安全你可以在同一应用程序域不同信任级别运行不同的组件。 (在现代CLR系统要简单得多,有在信任的授予程序域级别只是完全受信任的代码和其他一切运行。)你的代码做了不安全的需求得到充分的信任,但是代码简单地调用它可能如果不安全的代码断言正确的权限集可以少信任。

您永远将是在您的安全代码是部分受信任的情况吗?如果是这样,然后通过各种手段,把不安全的代码在自己组装,然后文件,该组件必须完全可信的。

如果你不是在这些各种各样的情况,那么我会不会倾向于把我的不安全的代码在自己的装配。

我会然而倾向于对我的非托管代码编写顶一个愉快的托管对象模型,而不是简单地暴露生Win32调用。例如,有一天我需要调用一些强名称验证的Win32 API的从C#,我只是掀起了暴露他们很好的一个小图书馆,抽象掉所有讨厌的互操作细节之类的私有内部。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top