标签: code-access-security

是否有CASPOL.exe GUI命令行生成器?

是否有用于生成CASPOL命令的简单实用程序/ GUI应用程序?

.net caspol code-access-security

3
推荐指数
1
解决办法
3559
查看次数

使用Process.Start修复CA2122

在应用程序中,我们可以将报告输出为csv文件并加载它,类似于以下代码:

Process.Start("C:\MyReport.csv") ' Not real path 
Run Code Online (Sandbox Code Playgroud)

运行代码分析时,会产生以下错误:

CA2122不要将具有链接需求"Form.Function(Definition)"调用的方法间接暴露给具有LinkDemand的"Process.Start(String)".通过进行此调用,'Process.Start(String)'间接暴露给用户代码

我已经看到用某个地方来标记装配SecurityTransparentAttribute,这是否只是压制了消息?如果是这样,这不是我想要的.是否有另一种打开文件的方法可以绕过这个消息而不会抑制它?如果我现在不能在其他任何地方使用Excel,我最好还是避免使用Excel自动化.

想法?

c# vb.net security fxcop code-access-security

3
推荐指数
1
解决办法
4886
查看次数

创建数组get方法的委托失败

尝试创建一个访问数组的委托,我得到一个ArgumentException说该方法无法绑定.

无法绑定到目标方法,因为其签名或安全透明性与委托类型的签名或安全透明性不兼容.

重现此代码的最小代码量如下:

var method = typeof(string[,]).GetMethod("Get");
var func = Delegate.CreateDelegate(typeof(Func<int, int, string>), new string[4,5], method);
Run Code Online (Sandbox Code Playgroud)

虽然默认情况下Get方法是不可见的,但第一行确实有效并找到了正确的方法.由于签名匹配,我认为异常与Get方法是安全透明的事实有关,而Func <,,>可能不是.如何确定委托类型是否安全透明以及如何解决此问题?

c# delegates code-access-security

3
推荐指数
1
解决办法
805
查看次数

让我的clickonce应用程序部分信任值得吗?

我即将开始研究针对内部客户的ClickOnce应用程序,以便在组织的Intranet上使用.我想简化设置过程,所以我认为开发部分信任的应用程序是个好主意,但现在我不太确定.

用户特别要求的一件事是(归结为)a TextBox与Cue Text.目前提供此功能的最简单方法是使用一个简单的子类,TextBox其中包含CueText功能作为属性.cuetext功能是通过PInvoke'd调用完成的SendMessage().

protected override void OnHandleCreated(EventArgs e)
{
    this.UpdateCueText();  // Bang, you're dead here
    base.OnHandleCreated(e);
}

private void UpdateCueText()
{
    if (this.IsHandleCreated)
    {
        NativeMethods.SendMessage(new HandleRef(this, this.Handle), setCueBannerMessage, this.showCueTextWithFocus ? new IntPtr(1) : IntPtr.Zero, this.cueText);
    }
}
Run Code Online (Sandbox Code Playgroud)

"啊哈!我需要SecurityPermission.UnmanagedCode." 默认的Intranet区域安全性包括SecurityPermission我可以告诉的权限,所以我尝试运行它,它会在调用时爆炸UpdateCueText().我甚至可以检查SecurityExceptionb/c 上的属性,每次尝试评估一个SecurityException属性都会引发另一个无法察觉的属性SecurityException.

我尝试标准修改:

protected override void OnHandleCreated(EventArgs e)
{
    var permission = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
    permission.Assert();
    try
    {
        this.UpdateCue();
    }
    finally
    {
        CodeAccessPermission.RevertAssert();
    }
    base.OnHandleCreated(e); …
Run Code Online (Sandbox Code Playgroud)

c# clickonce pinvoke code-access-security

2
推荐指数
1
解决办法
881
查看次数

反向工程"编译"Perl与C?

有一个声称符合C的客户端比sudo"编译"Perl字节码等更难进行逆向工程.任何人都有办法证明或反驳这一点?

c perl reverse-engineering code-access-security

2
推荐指数
1
解决办法
1983
查看次数

MethodAccessException

我有一个非托管的assebmly(加密功能),VB.NET(2.0)安装程序类在应用程序安装期间用于应用程序服务器上的某些安装诊断.问题是每当调用一个方法时它会抛出MethodAccessException异常.当我在应用程序本身(Windows 2.0)中调用该方法时,比如任何其他应用程序程序集的形式,都接受该调用为完全信任.但是,当安装程序类(自定义操作)执行调用时,非托管程序集不允许它并抛出异常.我做了一些关于caspol工具的研究,但仍然无法掌握代码安全性,足以解决问题谢谢.

.net installer code-access-security code-security

2
推荐指数
1
解决办法
6472
查看次数

有哪些潜在的安全漏洞?C++

我的老板告诉我查看下面的代码并告诉他潜在的安全漏洞是什么.我不是很擅长这种事情,因为我不认为试图破解代码.我只看到没有任何东西被宣布为私人,但除此之外,我只是不知道.

#define NAME_SIZE (unsigned char) 255
// user input should contain the user’s name (first name space
// middle initial space last name and a null
// character), and was entered directly by the user.
// Returns the first character in the user input, or -1 if the method failed.
char poor_method(char* user_input, char* first, char *middle, char* last)
{
   char*buffer;
   char length;

   // find first name
   buffer = strtok(user_input, " ");
   if(buffer==0)
   {
        return -1;
   }
   length = strlen(buffer); …
Run Code Online (Sandbox Code Playgroud)

c++ security code-access-security

2
推荐指数
2
解决办法
2412
查看次数

代码防盗 - 伴侣或任何类似的东西

有人听说过Chaperon吗?它是否有效防止代码被盗?

现在我明白,如果有人要窃取代码并且没有任何东西可以完全万无一失,那么可以有很多方法,所以请不要给我这个作为答案.

我想知道这是多么有效以及该实用程序/软件如何正常工作?

还有其他类似的工具吗?

copy-protection code-access-security

2
推荐指数
1
解决办法
742
查看次数

具有许多角色的自定义CodeAccessSecurityAttribute

我正在为我们的应用程序开发一些基于角色的安全性,并且我本质上是想进行自定义的Verison MVC- AuthorizeAttribute但仅限于业务逻辑层,在该层我们不链接到MVC。

我看过了,PrincipalPermissionAttribute但由于密封,似乎没有办法自定义它。我只想创建一个自定义版本,可以在不使用多个属性的情况下检查任何角色列表中的成员身份,还可以定义在哪里查找角色成员身份。

.Net中缺少类似的内容吗?还是有人在不重新实现ASP.Net的AuthorizeAttribute / RoleProvider / etc的情况下对此有一些见识?

编辑

我目前正在运行命令式版本,但我宁愿使用声明式属性版本,因为在方法/类上方更容易看到它。

现在,我在业务层的抽象基类中具有以下内容:

protected void EnsureEditorLevelAccess()
{
    var allowedRoles = new[]
                            {
                                Roles.Administrator,
                                Roles.Editor,
                            };

    var roles = GetAccountRoles(GetCurrentUsername());

    if (roles.Any(role => allowedRoles.Contains(role)))
    {
        return;
    }

    throw new SecurityException("You do not have sufficient privileges for this operation.");
}
Run Code Online (Sandbox Code Playgroud)

我喜欢使用Roles.Administratoretc,因为角色名称很丑陋(基于Active Directory组...),所以我考虑将这些详细信息包装在自定义属性的构造函数中,我可以将其放到类/方法之上。

GetAccountRoles 只是可注入角色提供程序属性的外观,我可以将其设置为使用AD或使用数据库的测试版本。

我可以继承子类Attribute,但不确定如何启动安全检查。

.net c# code-access-security security-roles declarative-authorization

2
推荐指数
1
解决办法
4423
查看次数

带 ECC 的串行密钥

我想要(或创建)基于椭圆密钥加密的序列密钥。我想做的是将信息编码在序列中,这些信息可以公开验证,但只能由我创建。最初的想法来自http://www.ssware.com/cryptolicensing/cryptolicensing_net.htm,他们可以在其中创建信息加密的连续剧。然而,这是基于 RSA 导致的大量数字。因此我想自己构建类似的东西。

然后我发现: http: //www.codeguru.com/cpp/cpp/algorithms/general/article.php/c12799/Product-Keys-Based-on-Elliptic-Curve-Cryptography.htm

然而,我认为这没有任何好处:他们选择应用程序和创建者需要知道的域参数。公钥用于加密(生成序列号),而私钥位于应用程序中并用于解密。然而,知道了域参数和私钥,很容易推导出 ECIES 的公钥,对吗?

下一个想法是对信息进行任意编码,并向其附加基于 ECDSA 的签名。但这会导致序列号很大。

我真正寻找的是一个类似于http://ellipter.com 的解决方案,他们使用正确的概念:生成序列的私钥和验证它们的公钥。屏幕截图中显示的密钥非常短:对于 128 位密钥,只有大约 30 个字符。

这样做的正确方法是什么?我是否错过了正确的方案?不可能是 ECDSA,也不可能是 ECIES。但还有什么?

security cryptography code-access-security elliptic-curve

2
推荐指数
1
解决办法
2341
查看次数