问题标签 [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 投票
1 回答
645 浏览

.net - IIS 7.5 拒绝加载 64 位程序集 - 可能是 CAS 问题?

我刚刚下载了Orchard CMS,在 VS2008 中打开它,然后按 F5:一切正常。

然后我在 IIS 7.5 中创建了一个网站,并将其指向 Web 项目的目录并正确设置权限(我希望如此)。我按照此处的建议下载了 64 位版本 System.Data.SQLite:Orchard Work Item 14798和此处:SO: Could not load file or assembly 'System.Data.SQLite'

该站点在完全信任下运行。当我将浏览器指向通过 IIS 运行的站点时,我得到

无法加载文件或程序集 'System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' 或其依赖项之一。未能授予最低权限请求。

我对代码访问安全性知之甚少(如果这甚至在这里起作用),所以我在这里不知所措。我做错了什么/不理解/没有看到?我如何提供适当的权限以及向谁/什么提供?

有没有希望将此应用程序部署到只允许我在中等信任中运行的主机上?

任何帮助、指示或建议将不胜感激。谢谢。

注意:问题不是为什么这最初在通过 Cassini 运行时有效。该问题的答案包含在上面提到的 SO 问题的答案中。

0 投票
1 回答
214 浏览

.net - MS 考试 70-536 - .Net 配置工具未提供 Caspol 操作

学习 MS 考试 70-536 .Net Foundation 我已经阅读了第 11 章应用程序安全性,在课程结束时,有一个练习是使用 .Net 配置工具添加代码组并使用 caspol 进行更改。

使用配置工具添加新代码组后,我尝试运行

但是没有列出新组...

0 投票
1 回答
706 浏览

c# - .NET exe 在网络上时的附属程序集和 FullTrust 问题

我正在从网络共享执行我的 .NET 应用程序。

自框架 3.5 SP1 起,如此处所述:http: //blogs.msdn.com/shawnfa/archive/2008/05/12/fulltrust-on-the-localintranet.aspx,主 exe 和位于同一个文件夹(但不是子文件夹)被授予 FullTrust 安全策略。

我的问题是我有带有本地化字符串的附属程序集的子文件夹。

即,我有:

FullTrust 自动授予 1 和 2。

3 和 4 不是,因此我的应用程序真的很慢。

有没有办法在运行时授予 3 和 4 FullTrust 安全策略,因为运行的应用程序具有 FullTrust?

如果没有,是否有一种干净的方法可以将附属程序集合并到一个 DLL 中?

0 投票
2 回答
1390 浏览

security - 如何从 DataAnnotations.ValidationAttribute 继承(在 .NET 4 的 Visual Studio 调试主机下出现 SecureCritical !)

我有一个 [AllowPartiallyTrustedCallers] 类库,其中包含 System.DataAnnotations.ValidationAttribute 的子类型。该库用于合同类型的 WCF 服务。

在 .NET 2/3.5 中,这很好用。但是,由于 .NET 4.0,在 Visual Studio 调试器中运行服务的客户端会导致异常“类型违反继承安全规则:'(我的 ValidationAttribute 子类型)'。派生类型必须与基类型的安全可访问性相匹配或者更难访问。 ” (System.TypeLoadException)

仅当满足以下所有条件时,才会出现错误:

  1. ValidationAttribute 的子类在 AllowPartiallyTrustedCallers 程序集中
  2. 反射用于检查属性
  3. 启用 Visual Studio 托管进程(项目属性、调试选项卡上的复选框)

所以基本上,在 Visual Studio.NET 2010 中:

  • 创建一个新的控制台项目,
  • 添加对“System.ComponentModel.DataAnnotations”4.0.0.0 的引用,
  • 编写以下代码:

.

  • 按 F5 会出现异常!

按 Ctrl-F5 (不调试就开始),一切正常,无一例外......

奇怪的是,ValidationAttribute 是否对安全至关重要,具体取决于您运行程序的方式(F5 或 Ctrl+F5)。如上面代码中的 Console.WriteLine 所示。但是话又说回来,这似乎也发生在其他属性(和类型?)上。

现在问题...

为什么从 ValidationAttribute 继承时会有这种行为,但从 System.Attribute 继承时却没有?(使用 Reflector 我没有在 ValidationAttribute 类或其程序集中找到特殊设置)

我能做些什么来解决这个问题?如何保持 MyValidationAttribute 从 AllowPartiallyTrustedCallers 程序集中的 ValidationAttribute 继承而不将其标记为 SecurityCritical,仍然使用新的 .NET 4 2 级安全模型,并且仍然可以使用 VS.NET 调试主机(或其他主机)工作?

非常感谢!鲁迪

0 投票
1 回答
2336 浏览

.net-4.0 - .NET 4.0 AppDomain:过时的证据

我是一名 .NET 学生,目前我们正在学习应用程序域。我们得到了以下示例代码(用于 .NET 3.5)。正如预期的那样,它抛出了一个 SecurityException。注意:TestApp.exe 作为参考添加到项目中。

当试图在 .NET 4.0 下的 VS2010 中运行它时,我遇到了一个问题。首先它显示一个警告

'Public Sub New(hostEvidence() As Object, assemblyEvidence() As Object)' 已过时:'此构造函数已过时。请改用采用 EvidenceBase 数组的构造函数。

我将 hostEvidence 的类型更改为 EvidenceBase() 并且警告消失了。但是,当尝试运行应用程序时,它会出错。

此方法隐式使用 .NET Framework 已废弃的 CAS 策略。为了出于兼容性原因启用 CAS 策略,请使用 NetFx40_LegacySecurityPolicy 配置开关。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=155570

我查看了该页面,点击如何:在沙箱中运行部分受信任的代码的链接并阅读http://blogs.msdn.com/shawnfa/archive/2009/05/27/coding-with-security-policy- in-net-4-0-implicit-uses-of-cas-policy.aspx但我无法理解所有这些。

与我目前拥有的相比,MSDN 上的代码示例相当大,因此任何有关更改我的代码以使其无需添加其他内容即可工作的帮助将不胜感激。

0 投票
2 回答
1895 浏览

c# - 细粒度的权限;PrincipalPermission - 角色与权限分开;

我在 wcf 服务中使用 PrincipalPermission 已经有一段时间了。[PrincipalPermission(SecurityAction.Demand, Role = SecurityRoles.CanManageUsers)]

我们的角色以:Can* 为前缀,这是我们使用内置 asp.net 会员系统实现细粒度操作控制的方式。

这使得作为一个业务部门很难知道我们可以为用户提供哪些细粒度的角色。

这是我的新方法,想看看是否有人可以在我实施我的建议之前提供反馈和代码审查。

1) aspnet_roles - 业务部门角色

2)通过创建权限表和Role_Permission表和User_Permission表来扩展asp.net会员系统(多对多)

3)创建自定义 CodeAccessSecurityAttribute + 来查看新表 [CustomPermissionCheck(Security.Demand, HasPermission="can*")] 第一次迭代我将静态地新建依赖存储库.. 理想情况下,我想要一个注入存储库的 aop 样式属性IPermissionRepository.HasPermission(...);

如果我采用新的 aop 方式,我可能会停止从 CodeAccessSecurityAttribute 继承——安全人员对此有何看法?

有没有其他人解决了这个问题,我错过了框架中有什么东西吗?

0 投票
4 回答
1021 浏览

.net - 是否存在命令行工具 CASPOL.exe 的替代品?

当尝试执行 .NET-App 时,它会抛出“PolicyException”,因为“只允许一个组”。该工具应列出现有设置,并允许删除选定的设置。使用 caspol 列出没有帮助,很残忍。

我看到有一个简单的 gui 前端,它允许定义新设置,但它不允许列出或删除现有设置。

Caspol 是一场噩梦,难怪有人选择使用它。对于 .NET 1.1,Microsoft 提供了一个配置实用程序,但对于 .NET 2.0,我什么也没找到。

0 投票
5 回答
13009 浏览

java - 对象反射的安全风险是什么?

因此,经过几个小时的解决方法,目前在 Google App Engine 上禁用了反射的限制,我想知道是否有人可以帮助我理解为什么对象反射可能是一种威胁。是因为我可以检查一个类的私有变量还是有其他更深层次的原因?

0 投票
2 回答
464 浏览

python - Python:丹尼斯 Nedry - 安全

有没有人看过侏罗纪公园,丹尼斯·内德利在系统崩溃后用动画说“你没有说出魔法词”来保护系统。

是否可以做类似 ikn Python 的事情?

形容它不那么幽默:

等待用户满足条件的响应屏幕。并在一定时间后加密并锁定系统。

通过使用 Python 在 linux 系统上是否有可能?

0 投票
1 回答
580 浏览

versioning - Enable/disable code access through license key - Application versioning

I have written a POS application, and now i want to create different versions of it. Something like a basic version, a premium version and a Full version. So if a client pays more they get more features in the same application. Is it possible that i could keep one standard application but features in my application get enabled / disabled depending upon what license key user enters. Restrict parts of code that can be executed only if a certain key was entered.

Any ideas guys...