标签: code-access-security

在部分信任环境中测试.NET代码

我想测试部分信任环境中某段.NET代码的行为.设置它的最快方法是什么?随意假设我(和其他读者)是完全CAS新手.

@Nick:谢谢你的回复.唉,有问题的工具明确用于非托管代码.我没有在我的问题中说"托管",也不应该假设人们会从".NET"标签中推断它.

.net code-access-security

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

集会证据

以下代码的目的是什么?:

object[] hostEvidence = {new Zone(SecurityZone.Internet)}; 
Evidence internetEvidence = new Evidence(hostEvidence, null);
AppDomain myDomain = AppDomain.CreateDomain("MyDomain");
myDomain.ExecuteAssembly("SecondAssembly.exe", internetEvidence);
Run Code Online (Sandbox Code Playgroud)

据我所知CLR 自动(它向Windows询问)根据程序集的运行位置(本地机器,因特网等)分配区域.我猜这是为了减少程序集的权限,但是当我们有两个证据时,我们还有两个代码组,它们在给定的策略级别内求和.

亲切的问候PK

.net security code-access-security

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

在开发过程中保护源代码免遭盗窃

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

这对于TFS来说尤其重要,其中项目在本地下载,缓存并可供脱机使用.理想情况下,如果代码没有有效的Active Directory用户ID,则代码将无法读取.

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

security encryption tfs code-access-security source-code-protection

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

通过将包含文件保存在公用文件夹之外来提高PHP的安全性?

与PHP相比,Perl,Pythong等语言通常被认为具有更好的安全性.除了可能的安全漏洞之外,有一个原因(我不知道,我要问)我们不会将Perl和Python的可执行文件放在公共文件夹中.由于PHP文件不可执行,因此将它们保存在公用文件夹中是安全的.

将php文件保留在公共文件夹之外以限制攻击者可能的访问是否是明智和实用的方法?如果是的话,这是常见的吗?因为我没有看到任何不利之处(除了在不同的地方处理文件传播有点困难); 但如果它有利于提高安全性,那么值得考虑.由于我不知道黑客附加基于php的网站的方式,我不知道如何提高安全性.

php security code-access-security

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

Windows 7中的.Net配置工具(mscorcfg.msc)在哪里?

我在新的Windows 7计算机上运行网站时遇到问题,我认为通过将运行时安全策略设置为完全信任来解决问题,但是我无法在我的计算机上的任何位置找到该工具

我在控制面板中找不到它,%systemroot%\Microsoft.Net\Framework\文件夹没有它,我甚至无法在Windows 7 SDK中找到它.在我疯了之前,有人可以帮我找到这个设置吗?

.net code-access-security windows-7

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

System.TypeLoadException未处理/覆盖成员时违反了继承安全规则

你可以创建一个.NET 4版本的应用程序进行测试是老板的无辜问题 - 当然!

但是在我将Winforms应用程序中的27个项目更改为.NET 4并重新编译后,在启动应用程序时,我得到了

System.TypeLoadException未处理
Message = 继承成员时违反了继承安全规则: 'MyCustomORM.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)'.覆盖方法的安全性可访问性必须与被覆盖的方法的安全性可访问性相匹配.

嗯.....

MyCustomORM确实实现了ISerializable接口,因此有这种方法

[Serializable]
public abstract class MyCustomORM: IMyCustomORM, ISerializable, ICloneable, ISecurable
{
    public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        // do stuff here.......
    }
}
Run Code Online (Sandbox Code Playgroud)

而且我还有两个派生自Exception那个GetObjectData方法的类.

但这里可能有什么问题?谷歌搜索我发现一些额外的属性,坚持我的方法和命名空间 - 所以我做了:

[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)]
namespace MyApplication.ORM
{
  [Serializable]
  public abstract class MyCustomORM: IMyCustomORM, ISerializable, ICloneable, ISecurable
  {
      [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)]
      public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
      { …
Run Code Online (Sandbox Code Playgroud)

.net-4.0 code-access-security winforms

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

C#WebApp log4net部分信任(高或中)无法正常工作

我在VS2010中创建了一个简单的.NET 4 Web应用程序,并添加了对log4net 1.2.11.0(最新)的引用.

在这个项目中,我做了一个Logger课程(见本文末尾).当我在完全信任环境中调用此类Logger(Logger.Fatal("Test");)时,一切正常.但是,当我将信任级别更改为高(或中)时,它会失败并出现以下异常:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeLoadException: Inheritance security rules violated while overriding member: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being overriden.
   at log4net.Repository.Hierarchy.Hierarchy..ctor(ILoggerFactory loggerFactory)
   at log4net.Repository.Hierarchy.Hierarchy..ctor()
   --- End of inner exception stack trace ---
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, …
Run Code Online (Sandbox Code Playgroud)

c# security log4net code-access-security

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

如何在依赖于可移植类库的库上成功运行secannotate.exe?

我正在研究Autofac项目,试图将所有常见逻辑转换为可移植类库,并为特定功能添加特定于平台的库.

我的开发机器是Windows 8企业版(64位),我安装了VS 2012 Ultimate以及所有装饰.我没有安装任何以前的.NET框架,任何其他工具或任何额外的PCL专用工具.它是一个干净的,新的虚拟机,只有基础的东西.在此配置中,所有构建和测试都运行良好.

当我尝试在依赖于其中一个可移植类库的.NET 4.5(完整配置文件)库上运行secannotate.exe时,出现错误,指示我需要mscorlib 2.0.5.0.

这是一个示例错误.PCL是Autofac.dll; .NET 4.5完整配置文件库是Autofac.Configuration.dll.

Error running annotator: Could not find referenced assembly 'Assembly(Name=mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)'. Ensure that the reference paths and assemblies are setup correctly.
Microsoft (R) .NET Framework Security Transparency Annotator 4.0.30319.17929
Copyright (C) Microsoft Corporation.  All rights reserved.

Loaded assembly 'Autofac.Configuration' from 'C:\dev\opensource\autofac\trunk\build_output\bin\net40\Autofac.Configuration.dll'.
Resolving assembly 'Assembly(Name=mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)'.
Loaded assembly 'mscorlib' from 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'.
Loaded referenced assembly from 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'.
Using …
Run Code Online (Sandbox Code Playgroud)

.net code-access-security portable-class-library

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

如何允许 SQL CLR 函数在并行查询计划中运行并具有数据访问权限

我编写了许多 SQL CLR 函数 (UDF),它们从托管在 IBM iSeries 上的外部 DB2 数据库(使用 IBM DB2 .Net Provider)读取数据。为了使函数具有读取此数据的必要权限,我需要使用 SqlFunction 属性装饰该函数,并将 DataAccess 属性设置为 DataAccessKind.Read。我还将程序集部署为 UNSAFE。

从 DB2 数据库读取数据所花费的时间相对较慢(例如,最简单的 ExecuteScalar 需要 3 毫秒)。

我使用这些 UDF 有效地将 DB2 数据库中的数据合并到 Sql Server 视图中。

例如,假设我的 UDF 定义为

[SqlFunction(DataAccess = DataAccessKind.Read, IsDeterministic = true)] 
public static SqlMoney GetCostPrice(SqlString partNumber)
{
    decimal costPrice;
    // open DB2 connection and retrieve cost price for part
    return new SqlMoney(costPrice);
}
Run Code Online (Sandbox Code Playgroud)

然后在我的 SQL 视图中使用它作为:

select Parts.PartNumber,
       dbo.GetCostPrice(Parts.PartNumber) as CostPrice
from Parts
Run Code Online (Sandbox Code Playgroud)

如果我可以使用并行查询计划运行我的 SQL 视图,那么糟糕的性能问题可能会受到显着影响。

有关于如何强制查询计划并行而不是串行运行的文档技术,但这些技术受到 …

.net sql-server sqlclr code-access-security elevated-privileges

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

Xamarin.IOS.代码分析 - CA2123

我有Microsoft Extended Correctness Rules我的Xamarin.IOS项目规则集.当我分析时,我遇到了很多麻烦:

  1. CA2123:添加以下安全属性以匹配onbase方法:.BooleanNegationConverter.Convert(object, Type, object, CultureInfo)LinkDemandIMvxValueConverter.Convert(object, Type, object, CultureInfo)SecurityCriticalAttribute

为什么我需要设置安全属性?为了什么?或者我必须这样做吗?

  1. CA2134:透明或安全的关键方法.get()是覆盖[simple self interface].get()违反方法覆盖规则的关键方法..get()必须成为安全关键,以覆盖关键虚拟方法或实现关键接口方法.

同样......我如何为IOS项目修复它?为什么我有这个问题.

谢谢!

c# mono code-access-security xamarin.ios xamarin

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