Tag: security

如何保护dll函数不被我的应用程序使用?

我想限制其他应用程序使用我编写的dll函数。 例如。 如果我有data.dll包含两个函数。 public void InsertInToDatabse(); public void ClearDatabase(); 现在,如果我的应用程序调用了InsertInToDatabse()并正在做其他工作,那么如果其他应用程序通过引用database.dll调用ClearDatabase(),那么数据库将被排除。那么如何限制对这些函数forms的调用第三方申请?

如何避免使用会员提供商?

我们目前正在为瘦客户端簿记应用程序构建架构。 它应遵循两个主要要求: 应用程序应具有模块设计。 每个模块都可以拥有(并且实际上拥有)自己的角色系统。 以后的应用程序应适合在不同的机器上使用不同的数据库运行。 我们认为Asp.NET MVC 3是适合这项任务的平台。 为了管理应用程序数据,我们选择了最新版本的Entity Framework – 它的批量数据提供程序和Code Firstfunction可以为我们节省大量时间。 我们纠结的部分是用户/角色管理系统。 我们应该有一些全局管理部分用于添加用户并授予他们模块访问权限(只有全局管理员可以将用户添加到系统,不支持“街头人”注册)并且每个模块都有自己的管理部分和自己的管理员和角色。 我们已经有了数据模型以适当的方式存储我们需要的所有内容,但不知道如何从应用程序正确访问这些数据。 目前,我们看到两种可能的方法来解决此问题: 根据我们的DAL编写自定义成员资格和角色提供程序。 我们团队中没有人这样做过,所以我们不确定这种方式是否值得。 会员提供商不能提供与应用程序需求一样多的灵活性,因此需要一些紧急情况。 挖掘一些过时的书籍,了解在创建成员资格提供者之前如何组织网站管理系统。 这两种方式都不优雅,对我们来说并不明显,而且选择哪种方式也不是一个简单的问题。 我们也相信它可以是其他解决方案(因为架构可能会受到影响)。 因此,我们很高兴看到任何与此问题相关的建议。

登录后直接从Websecurity获取CurrentUserID(C#/ ASP.NET)

我有这个网站(C#/ ASP.NET),其中一个表单,用户可以注册一个帐户(它是VS11的默认模板),在填写完所有内容并且用户点击注册后,它会创建帐户和日志在用户(这很棒)。 在这一步之后,我想获得他被分配的UserID,但它不起作用。 我在那里放了一个断点来查看“currentuserid”和“WebSecurity.CurrentUserId”的值,但它们只有-1值。 下一步是用户被重定向到下一页,在该页面上这些function起作用。 我以为我能够获得UserID,因为用户已经在我在这里提供的代码的第一行登录了。 所以我的问题是,为什么它不起作用? 我对此很无礼,所以我显然缺少一些东西。 WebSecurity.Login(username, password); int currentuserid = WebSecurity.CurrentUserId; // This doesn’t work, only returns -1 Response.Redirect(“~/Welcome.cshtml”); 谢谢!

如何为多个进程缓存eToken PIN

我有一个.NET(c#)应用程序,它在’my’证书库中使用x509Certificate2,最初来自eToken设备。 当我使用证书(解密数据或将其用作Web请求的clientcert)时,它将要求设备PIN一次。 之后,它被缓存,用户不会每隔xx分钟打扰密码请求。 现在,我有多个进程,都使用证书。 这些过程中的每一个都将请求设备PIN。 (缓存似乎是每个进程)。 这有简单的方法吗? 我可以在某处“缓存”它,以便每个进程都可以访问令牌而无需反复请求PIN吗?

为什么标签为x = txtName.Text; 受到XSS攻击,这里有什么预防措施?

我有以下代码: label x = txtName.Text; 当安全团队分析了dll时,他们说可以对上面的代码执行XSS攻击。 我知道文本框Text属性不会阻止XSS攻击,所以我现在该怎么办? 以下修正案是否会解决问题? label x = Server.HtmlEncode(txtName.Text);

如果是Workgroup,如何在远程计算机上授予Windows服务访问权限?

我正在开发一个Windows服务,其任务之一就是在远程计算机上存档文件,但是在工作组的情况下,我遇到了有关访问权限的问题。

我如何以编程方式限制对Web服务的访问?

我正在编写一个传统的ASMX Web服务,使用C#和.Net 2.0在IIS上进行部署。 webservice将部署在一个共享托管环境中,每个客户端都有自己的应用程序副本,位于一个单独的虚拟目录中(我知道,我知道 – 这是一个遗留应用程序)。 每个虚拟目录中都会有一个Webservice的单独副本。 由于Web服务可能会做一些有力的事情,我希望可选择限制对某些IP地址的访问。 在防火墙中执行此操作并不是一个非常好的选择,因为它只是应该受到限制的Web服务而不是网站的其他部分 – 并且它位于每个虚拟目录级别。 我可以以编程方式读取请求者的IP地址并将其与列表进行比较,以便我可以拒绝来自其他地址的呼叫吗? 这有什么重大缺陷吗? 谢谢

在LocalSystem或LocalService帐户下运行AppPool时,从ASP.NET应用程序重新启动服务器

是否可以从LocalSystem或LocalService帐户托管的ASP.NET应用程序重新启动服务器? 当我创建自定义管理帐户并将AppPool放在该帐户下运行时,这是有效的: Process.Start(“shutdown”, “/r /d 4:1 /t 10”); 但是,我不想拥有自定义帐户(因为密码过期,需要在更改用户密码时更新所有AppPools – 我需要维护多个服务器)。 那么,这可能吗?

如何限制应用程序仅从已知的USB闪存驱动器运行?

我需要一个只能从特定USB闪存驱动器运行的应用程序。 我使用WMI Win32_Diskdrive类和PNPdeviceID属性进行了一些测试。 使用这些数据将应用程序注册到许可证服务器(Web服务)是一个非常好的主意,但我正在寻找第二种方法来重新强制执行此类数据,以使该过程更难破解。 我想在驱动器中创建第二个小隐藏分区,并在其中找到PNPdeviceID或其他信息所支持的串行名称。 接受任何其他想法,方法或建议。 提前致谢。 编辑:我已经知道USB闪存驱动器中的唯一ID,应用程序可以检查Interfacetype属性是否为“USB”。 我在一个支持Web服务的许可证管理器中使用PNPDeviceID的哈希注册应用程序。 我正在寻找另外一种validation方法。

通过C#从注册表中的“UserChoice”键中删除“拒绝”规则(权限)

我正在研究文件关联。 我已经确定在UserChoice中有一个名为UserChoice的键: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\[ext]. 我已经能够读取和写入UserChoice密钥,只要我创建它并且它尚未由Windows创建。 但是,如果Windows已经创建了UserChoice密钥,那么我需要以管理员身份运行才能访问密钥。 我的最终目标是删除 UserChoice键。 我注意到Windows在UserChoice键上放置了拒绝规则,这阻止我删除该键。 如果我能成功删除该规则,我相信我将能够删除UserChoice密钥。 这是我尝试过的代码: public static void ShowSecurity(RegistryKey regKeyRoot, string user) { RegistrySecurity security = regKeyRoot.GetAccessControl(AccessControlSections.All); foreach (RegistryAccessRule ar in security.GetAccessRules(true, true, typeof(NTAccount))) { if (ar.IdentityReference.Value.Contains(User) && ar.AccessControlType.ToString().ToLower() == “deny”) { security.RemoveAccessRuleSpecific(ar); regKeyRoot.SetAccessControl(security); } } } 当Windows创建UserChoice键时,它为Type Deny的当前用户添加安全规则; 许可:特别 。 此规则不是inheritance的,仅适用于UserChoice键。 随着管理员的一些混乱和运行我能够访问RegistryAccessRule 。 但是,即使以管理员身份运行,我也无法删除此规则。 我在研究中的某处读到,没有一种编程方式可以做到这一点。 我可以通过RegEdit删除此规则。 我还可以使用NirSoft的文件类型管理器删除UserChoice密钥。 所以我假设有一些方法可以做到这一点。 简介:有没有办法可以删除拒绝规则,以便删除UserChoice密钥?