问题标签 [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 回答
1240 浏览

c# - .NET/Security:限制运行时加载的程序集访问某些 API

在 shell 应用程序中,我需要能够在运行时加载和执行其他 .NET 程序集,但不能完全信任它们。本质上,我想限制它们(加载的程序集)接触任何系统资源(线程、网络等),唯一的例外是隔离存储。但是,来自“我”的程序集需要完全信任地执行。

我一直在考虑代码访问安全性,但我不太确定它是我应该使用的。

你会怎么做?

0 投票
1 回答
183 浏览

windows-installer - 仅当所有用户时,msi CustomAction 中的 GetDirectories 调用才会引发安全异常

我有一个自定义操作,用于部署一些文件,这些文件位于切换包中的 msi 旁边。我的自定义操作通过 OriginalDatabase 参数传递到 msi 路径,我正在检查它旁边是否有文件夹。没有什么太疯狂了,但很难弄清楚。

从本地复制的文件安装单个或多个用户就像一个冠军。从网络共享运行 setup.exe 时安装单个用户可以正常工作,但是当我从网络共享安装所有用户时,我遇到了安全异常。

有问题的行是这样的:

自定义操作运行,SecurityAction.Demand所以我应该拥有我需要的所有访问权限。

任何人都可以提供的任何输入将不胜感激。

谢谢,凯西

0 投票
1 回答
137 浏览

.net - 关于代码访问安全 (CAS) 的问题

我正在研究 .NET 2.0 的代码访问安全性。我目前的理解如下:

CAS的基本机制是让CLR从程序集中收集某些证据,然后使用证据和策略为程序集的代码制定一个权限集。除了该权限集之外,程序集的代码无能为力。

证据用于将某个程序集划分为某个代码组,并在代码组粒度上给出权限集。

CLR 在运行时可以收集多种类型的证据。

很容易确定应用程序目录、GAC、哈希、强名称等证据。

但是如何确定Publisher、Site、Zone、URL等证据?这些证据数据存储在哪里?它们是程序集元数据的一部分吗?我不认为像 Zone 或 Site 这样的证据应该是元数据的一部分。

非常感谢。

0 投票
1 回答
87 浏览

.net - 关于代码访问安全(CAS)工作范式的问题

我编写了以下代码来测试 CAS:

在 .NET 2.0 配置中,我使用上述程序集的强名称来创建一个代码组,并赋予该组Nothing权限集。所以组装未能按预期启动。

但我注意到,如果我删除以下属性:

程序仍然无法启动。那么这种所谓的带有属性的声明性安全性有什么意义呢?

我阅读了几个关于 CAS 的教程,他们使用命令式/声明式安全来使用 CAS。但从上面的示例来看,似乎没有必要。

如果我故意编写没有命令式/声明式安全性的代码并且不为我的程序集提供任何证据,那么 CAS 会盲目执行任何安全策略吗?

还是我误解了 CAS 的预期用途?

谢谢。

0 投票
0 回答
82 浏览

c# - 限制从 C# 代码访问证书

用例:

我有一个托管平台(服务器),其中托管了多个 ASP.Net 应用程序。我不想让应用程序以编程方式访问服务器上的证书。只有平台所有者开发的组件/库才能访问这些证书。

有什么方法可以限制应用程序仅使用平台组件进行任何与证书相关的操作。

仅供参考,所有证书都作为文件存储在固定文件夹中。

我可以实现某种代码访问权限,它可以让平台库访问这些证书并拒绝其他库/组件/应用程序访问证书吗?

0 投票
1 回答
313 浏览

c# - 如何在 .net 窗口应用程序中设置处理器 ID 的信任级别?

我用 C# 开发窗口应用程序。我用这个 Windows 应用程序创建了一个安装程序。它在几乎所有计算机上运行良好。窗口应用程序获取处理器的 ID,然后基于该 ID 生成一个唯一密钥。在一台计算机上,它给出错误“Windows 安装程序无法生成密钥。请联系您的管理员”。我已经调试了 .net 代码并发现它没有访问处理器 ID 的适当权限。我应该怎么做?我应该如何在 .net(窗口应用程序)中设置信任级别以访问特定计算机的处理器 ID?您能否提供我可以解决上述问题的任何代码或链接或任何程序?

0 投票
1 回答
1793 浏览

c# - 代码访问安全策略问题 - 将第三方 dll 部署到 bin

好的,我认为你们中的大多数人都使用 wspbuilder 来构建 wsp 解决方案并进行部署。所以这是我的问题。

我正在开发一个 SharePoint 解决方案,该解决方案利用第三方 dll(Telerik for Asp.Net Ajax - Telerik.Web.UI.dll)来获得丰富的体验。由于 Telerik dll 是一个通用程序集,我必须将其部署到 web 应用程序的 bin 文件夹而不是 GAC。所以问题来了。

如果 dll 出现在 GAC 文件夹中,WSPBuilder 会自动将 dll 部署到 gac。为了在 bin 中部署 Telerik dll,我创建了文件夹 80\bin 并将 dll 复制到那里。我尝试再次构建 wsp,然后查看创建的 manifest.xml。伟大的。dll 的部署目标更改为 WebApplication 并且 wspbuilder 很聪明地创建了 cas 策略本身。

但是 Wspbuilder 不够聪明,无法将 SharePointPermission IPermission 类的四部分名称放在一起。但我了解到 CAS 实际上需要四个部分的名称。所以我决定使用 wspbuilder.exe 的 -CustomCAS 命令行选项来传递我的自定义 cas 策略文件。

这是我的自定义策略文件 -

因此,在构建 wsp 之后 manifest.xml 的 cas 部分阅读了这个 -

在我部署了我验证的 wsp 之后

但是当我运行该页面时,我收到以下错误 -

截屏 -

替代文字

错误 -

执行权限被拒绝

堆栈跟踪 -

告诉我你是否想要堆栈跟踪。它有点烦人。

我已经检查了我的整个应用程序是否有 dll 的任何程序集引用。但我找不到一个。有任何想法吗?

0 投票
3 回答
649 浏览

.net - Code Access Security is a joke?

I have just read about this article about Code Access Security. It has such an example in it:

#xA;

What if I didn't use the FileIOPermissionAccess type and never includ code like p.Demand() in my code at all? In other words, if I want to do something bad, why should I bother to ask permission for that? Isn't it kind of a joke? OR did I take it wrong?

0 投票
5 回答
16030 浏览

php - 如何保护我的插件,以便只有付费用户才能使用它?

我正在开发一些(wordpress)插件,我计划为任何想要使用它的人收取许可费。

因此,我需要一种方法来确保该插件不会上传到任何人都可以下载并免费使用的服务器。

所以我在考虑使用 API 密钥。有效的 API 密钥 = 用户可以使用插件。无效 = 插件不起作用。

我看过这篇文章PHP API Key Generator,但我对此并不了解。

我也知道,因为它是 PHP,任何人都可以进入代码并禁用 API 检查(我只是在猜测)

保护我的插件的最佳方法是什么?API 密钥?其他方法?有没有人有关于这个主题的任何好的教程的链接?

0 投票
7 回答
9901 浏览

security - 在开发过程中防止源代码被盗

有没有办法在开发过程中保护我的代码,这样如果开发人员离开我的公司,他们就无法访问我项目中的文件?

这对于 TFS 尤其重要,因为 TFS 项目在本地下载、缓存并可供离线使用。理想情况下,如果代码没有有效的 Active Directory 用户 ID,则代码将无法读取。

即使这个想法是不可能的,我想了解任何你能想到的实际威慑......