标签: code-security

避免在C#中调用反射的用户代码

我正在为我正在教授的课程实施一个自动"评估员".总的想法是每个学生都提供了一些DLL,并实现了一些算法.我的评估者使用Reflection加载所有这些DLL,找到学生实现并在锦标赛中评估它们.所有这些算法都是黑盒优化器,它们实现了以下接口

public interface IContinuousMetaheuristic
{
    // ... Some unimportant properties
    Vector Evaluate(Function function, int maxEvaluations, ...);
}
Run Code Online (Sandbox Code Playgroud)

Function(至少相关部分)的类定义是:

public class Function:
{
    private Vector xopt; // The optimum point
    private double fopt; // The optimum value

    public double Evaluate(Vector x);
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我需要将一个Function实例传递给这些元启发式.这些功能由我自己实现.其中大多数在某种意义上是随机的,也就是说,我在函数构造函数中选择一个随机最优点.这就是为什么你可以xopt在课堂上看到一个字段.问题是,我不希望我的学生能够通过反射或任何其他技术访问xoptfopt领域,因为这将是作弊,或至少,如果他们这样做,所以我可以相应地惩罚他们;) .

因此,一般的问题是:是否有任何方法可以禁止在我动态加载的代码中使用Reflection,或者在任何其他意义上禁止此代码访问私有字段(作弊).

提前致谢.

c# reflection code-security

13
推荐指数
1
解决办法
464
查看次数

如何在电子js中对源代码进行混淆和保护源代码

我最近开发了一个带有electron框架的应用程序,在阅读了与电子 javascript 代码相关的安全问题后,我现在担心源代码保护。

我的意思是即使应用程序是为生产而构建的,也可以对代码进行逆向工程。我的应用程序包含许多关键信息,例如GitHub Private TokenAutoUpdate 等等。

我刚刚浏览了很多 SO 帖子,但没有找到完美的答案,所以解决了这个问题。使用电子无法混淆 javascript 代码或源代码保护?然而,混淆并不能完全保护代码,但它会使逆向工程变得复杂。如果有解决方法,请告诉我。我没有tl;dr在电子的安全相关帖子中找到更多内容。

我通过obfuscator找到了一种混淆方法,但似乎它需要手动混淆,并且没有更多关于源代码保护的信息,例如NW.js有没有更好的方法来实现它?

我在Medium post上发现了一些有助于混淆的东西。但没有找到任何关于源保护的信息。

javascript security obfuscation code-security electron

7
推荐指数
4
解决办法
1万
查看次数

是否无法保护.net代码(知识产权)?

我曾经在JavaScript中工作很多,而且真正困扰我的雇主的一件事是源代码太容易被盗了.即使有混淆,也没有什么真正帮助,因为我们都知道任何有能力的开发人员如果愿意,都能够阅读该代码.

JS Scripts是一回事,但是那些在IP(知识产权)上投入了数百万美元的SOA项目呢.我喜欢.net,尤其是C#,但我最近又回答了这个问题:"如果我们将这个编译好的程序交给我们的客户,他们的开发人员可以对其进行逆向工程吗?" 我已经不遗余力地对代码进行了模糊处理,但我知道对于另一位坚定的C#开发人员来说,获取代码并不需要那么多.

所以我认真地提出了这个问题,是否无法保护.net代码?

我的考虑因素如下:

  1. 即使是常规的本机可执行文件也可以反转,但并非每个开发人员都具备能够执行此操作的技能.拆解本机可执行文件要比.net程序集更难.
  2. 混淆只会让你到目前为止,但它确实有点帮助.
  3. 为什么我从未见过微软公开承认用.net写的任何东西都会受到相对容易的IP盗窃?为什么我从未在任何Microsoft网站上看​​到过一些反措施培训?为什么VS带有社区混淆器作为可选组件?好吧也许我刚刚在这里度过了难关,但在大多数开发人员优先列表中并不是很高.
  4. 有没有计划在任何未来版本的.net中解决我的问题?

我不是在敲网.但是我想要一些现实的答案,谢谢你,标记为主观和社区的问题!

.net code-security

6
推荐指数
1
解决办法
315
查看次数

创建自定义CodeAccessSecurityAttribute会导致编译时出现异常

我正在构建一个自定义CodeAccessSecurityAttribute来处理我的WCF服务的授权.我这样建了A级:

public class A : CodeAccessSecurityAttribute
{
    public A() : base(SecurityAction.Demand)
    {
        // Constructor Code
    }

    public override IPermission CreatePermission()
    {
        // Permission Creation Code
    }

}
Run Code Online (Sandbox Code Playgroud)

在编译时会产生此错误.

Error emitting 'A' attribute -- 'Serialized security custom attribute is 
truncated or incorrectly formed.'
Run Code Online (Sandbox Code Playgroud)

在玩了一点之后我想出了下一个编译而没有错误的示例:

public class B : CodeAccessSecurityAttribute
{
    public B(SecurityAction Action) : base(Action)
    {
        // Constructor Code
    }

    public override IPermission CreatePermission()
    {
        // Permission Creation Code
    }

}
Run Code Online (Sandbox Code Playgroud)

我知道这是因为SecurityAction枚举没有直接引用到A类的公共端,但我无法弄清楚的是如何制作它以便我可以使用A类方法而不是B类.

.net wcf code-security

5
推荐指数
1
解决办法
2004
查看次数

限制方法中的代码只调用同一个类中的成员

有没有办法可以限制在我的类中的一个方法中进行的调用,因此只能调用封闭类(也是继承的)上的方法和属性.我正在使用c#(.NET 4.5).这将在我们的应用程序框架中用作代码安全功能.

.net c# code-security

5
推荐指数
1
解决办法
133
查看次数

c#dll加密

我需要加密 ASP.NET 页面使用的 C# 代码。所以,当我编译创建一个 DLL 文件时,我确实需要加密我的 DLL 文件。请帮我如何加密DLL文件...

encryption dll code-access-security dllexport code-security

4
推荐指数
1
解决办法
1万
查看次数

MethodAccessException

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

.net installer code-access-security code-security

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