问题标签 [code-access-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
405 浏览

security - 应用逆向工程保护/硬化

我想保护我的应用程序免受逆向工程。

我想做的是保护可执行文件免受任何篡改,例如十六进制编辑器、资源编辑器和反汇编篡改。

我的想法是让应用程序根据来自服务服务器的版本文件(可能是 xml 文件或平面文件)中的导入值检查自身的哈希值,然后关闭应用程序或以某种方式完全禁用它的功能,如果值不匹配。

我在这里处于陌生的水域,所以如果有人有任何意见、建议、想法或代码示例,我将不胜感激。

开发语言是 C++,但我很乐意从任何语言中举例。

提前感谢您的任何帮助。

0 投票
1 回答
2050 浏览

sharepoint - 无法将我的自定义 DLL 部署到 Sharepoint 站点

我创建了我的自定义程序集,其中包含一个简单的 HttpModule,我想在我的 Sharepojnt 2010 站点中使用它。

我将我的模块添加到了共享点站点的web.config/system.webServer/modules部分。

然后我还将我的 DLL 直接复制到bin文件夹,因为这就是 suual asp.net 应用程序的工作方式。我有一个关于 failed 的异常AspNetHostingPermission

我将相同的 DLL 复制到_app_bin文件夹并且它工作。我的模块确实已初始化并正在运行。

然后我向我的模块类添加了两个权限:

[AspNetHostingPermission(SecurityAction.InheritanceDemand,级别 = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.LinkDemand,级别 = AspNetHostingPermissionLevel.Minimal)]

并将这两个添加到装配中

并用我创建的密钥对我的程序集进行了强烈签名。

然后我将DLL复制回,bin但它仍然无法正常工作。复制它来_app_bin工作。

我需要做什么才能将我的 DLL 直接部署到bin文件夹中?

0 投票
1 回答
365 浏览

.net-4.0 - 如何在 .NET 4 中使用 CAS 来锁定我的 MEF 扩展?

我在 .NET 4 中有一个使用 MEF 进行可扩展性的应用程序。我的主应用程序有三个程序集HostApplicationContracts

Host是创建容器并进行组合的“引导”可执行文件。

Application包含我的应用程序的逻辑,以及第 3 方的更多扩展点。

Contracts包含在扩展点中使用的接口(和一些帮助类)。

因此,开发第 3 方应用程序的人必须包含对 的引用Contracts,而不是对Application.

我在想我的安全模型应该是这样的:

  1. Host并且Application应该是SecurityCritical
  2. Contracts应该是SecuritySafeCritical
  3. 所有第 3 方扩展都应该是SecurityTransparent

我认为 1. 默认情况下会满足。我知道我可以使用程序集属性来实现 2.。问题是,我如何执行规则 3.?操作系统是否通过将所有下载的扩展标记为不受信任来自动执行此操作?下载的扩展程序集是否有可能变得完全受信任?

0 投票
2 回答
429 浏览

.net - .Net 桌面应用程序安全性的任何示例

是否可以防止任何未经授权的用户像任何 Web 应用程序一样访问桌面应用程序中的代码或应用程序?提前致谢。

0 投票
3 回答
132 浏览

algorithm - 防止从不同的客户端应用程序调用 web 服务

我在工作中有这个网络服务。对于该 Web 服务,我们部门开发了一个客户端来使用该 Web 服务。

我们要防止的是,他们开发任何其他客户端来使用它。

是否有任何算法和实践可以改进我们的客户端和 Web 服务通信来验证消费客户端是我们的应用程序?

我有一个想法,我们可以开发一个关于时间(5 秒宽限期)的加密算法,该算法必须与服务器上计算的时间相匹配。

但我想确定的是,没有最佳实践......或者如果它仍然是一个好主意......

(对不起我的英语)

0 投票
2 回答
3784 浏览

c# - 自定义 CodeAccessSecurityAttribute

我创建了以下属性:

我这样使用:

运行代码给我以下错误:

缺少必需的构造函数。(来自 HRESULT 的异常:0x8013143B),它是一个 COMException。

为什么我会得到它,它的真正含义是什么?

0 投票
1 回答
60 浏览

.net - 阻止程序集更改 IPrinicpal

我的应用程序加载了许多不同的插件程序集。每个插件都可以将自己的服务添加到 IoC 容器中,也可以使用主应用程序提供的所有服务。

我正在从一个自制的安全解决方案转向使用 CAS(PrincipalPermissionAttribute 和一个从 CodeAccessSecurityAttribute 派生的自己的解决方案)。

我可以防止加载的程序集更改 System.Threading.Thread.CurrentPrincipal (并以这种方式绕过我的安全检查)吗?

0 投票
1 回答
1334 浏览

c# - 由于排除 CAS,C# 3.5 winforms 应用程序升级到 C#4.0 问题

我有一个刚刚从 3.5 升级到 4.0 的 C# 4.0 Winform 应用程序。C# 4.0 Winforms 应用程序引用了一个 C# 3.5 dll,它将根据用户选择从网络路径加载一系列 dll,然后使用 System.Reflection 创建/调用这些 dll。当应用程序设置为使用 3.5 作为目标框架时,一切正常。升级后出现此错误:

尝试从网络位置加载程序集,这会导致程序集在以前版本的 .NET Framework 中被沙盒化。此版本的 .NET Framework 默认情况下不启用 CAS 策略,因此这种加载可能很危险。如果此加载不打算对程序集进行沙箱处理,请启用 loadFromRemoteSources 开关。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=155569

当我尝试从网络路径加载程序集时会发生这种情况:

在做一些研究时,我发现 CAS 在 4.0 版本中“有点”被淘汰了。建议我将以下条目放入我的 app.config :

现在,我得到的例外是:

调用的目标已引发异常。在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck)在 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache)在 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly , Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfoculture, Object[] activationAttributes) at System.Activator.CreateInstance(类型类型,BindingFlags bindingAttr,Binder binder,Object[] args,CultureInfo 文化,

内部例外是:该程序集不允许部分受信任的调用者。

这个异常是在我从网络位置加载程序集之后抛出的,但我试图使用激活器在程序集中创建一个类型的实例。

C#4.0 Winforms 应用程序已签名(.snk 文件)。单击安全设置被检查为完全信任应用程序后。我尝试过更改 app.config 设置和项目设置的组合,甚至删除签名。我在这里束手无策,试图弄清楚我能做些什么才能让 winforms 应用程序保持 4.0 而不是 3.5。任何人都可以帮忙吗?

0 投票
1 回答
92 浏览

code-access-security - 数字软件升级器的远程电子邮件/许可证验证想法

我有一个我经常支持和升级的 wordpress 主题。

它包含一个内置的升级程序,该程序获取一个包含更新文件的 zip 文件并解压缩到主题目录,覆盖旧文件。

我想在此升级程序中添加一个许可证验证例程,该例程会询问用户的电子邮件地址和密码,然后远程调用我的成员的数据库,并在允许例程继续之前验证电子邮件和密码是否有效。

这是一个简单的任务吗?你会采取什么方法?升级请求将来自网络上的任何地方,并且必须回叫我的服务器进行验证。

它与 WPRobot 使用已知电子邮件地址验证升级的做法非常相似。

0 投票
1 回答
643 浏览

asp.net - 如何授予网络上文件夹的权限,与 2008 框架 3.5

我在本地 PC 上使用 Visual Studio 2008。我的代码保存在网络驱动器上。当我尝试从本地计算机运行它时,我遇到了安全异常。无论如何我可以授予网络文件夹的权限吗?

*安全异常描述:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或在配置文件中更改应用程序的信任级别。异常详细信息:System.Security.SecurityException:请求“System.Web.AspNetHostingPermission,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。*