在用户登录上运行管理特权的过程
我试图弄清楚如何解决特权获取. 该应用程序需要桌面访问权限,因此不能将其作为Windows服务执行:它必须创建一个使用SendMessage通过其他进程发送消息的窗口(必须用于等待消息确认). . 用户登录时应启动应用程序,并将管理用户会话(管理应用程序,Windows ...). 只能管理一个用户. 我要问的是哪个是请求特权获取的最佳解决方案,因为该应用程序需要它(执行一个调用setWindowShook的过程). 如何在没有提示UAC消息的情况下在用户登录时运行任何过程?可以在安装阶段进行设置操作... 当用户登录时,如何运行公用事业服务启动流程?这样,(已安装)服务可以使用任何特权来运行有效的过程... 还有其他解决方案吗? * 拥有完整的兼容UAC应用程序需要采取什么定义行动? (我的意思是在构建和部署阶段? 例如,我使用mt.exe(使用VS2005)包括以下清单文件:
0 2024-04-16
编程技术问答社区
从低集成度进程中获得对MemoryMapped文件的访问权
我正在尝试在中等融合过程上创建一个内存映射文件,然后在低融合子进程上打开相同的文件,并为IPC使用此共享存储器.没有真实的磁盘文件(使用MemoryMappedFile.Createnew). 我的问题是,低融合过程无法打开共享内存,并将其抛出:" System.unauthorizedAccessexception:拒绝对路径的访问.".考虑到我想从低融合过程中写入访问权限,我并不感到惊讶,但是如何授予它? 这是我的代码: 中等完整性过程: MemoryMappedFileSecurity security = new MemoryMappedFileSecurity(); var file = MemoryMappedFile.CreateNew("test", 4096, MemoryMappedFileAccess.ReadWrite, MemoryMappedFileOptions.None, security, HandleInheritability
0 2024-04-16
编程技术问答社区
使用Path.Combine时的路径遍历警告
我目前正在使用Newtonjson从JSON文件加载一些UI数据.但是,有一个警告说我有遍历路径. 以下情况是: 删除此安全漏洞的任何想法? 解决方案 当用户或其他不信任源提供的路径与父路径合并而不检查时,路径遍历漏洞是可能的.问题在于,路径的"路径遍历"组件可以从父文件夹中导航. 例如,如果要组合以下两个路径,一个绝对路径和一个相对路径: Base/absolute path: C:\WebData Relative/user path: ..\windows\system32\ 然后这将产生: C:\windows\system32\ 您可以想象,让某人读取或编写此目录(不是预期的WebData目录)可能是一个巨大的问题,因为这可能会导致某人学习有关您的系统的信息或放置损害系统的利用,将其控制给恶意演员. 您可以 要正确处理此漏洞,您需要确保相对路径与父路径相结合.以下是确保这一点的一些方法: 相对路径来自已知信任的来源,例
0 2024-04-16
编程技术问答社区
ViewStateUserKey+共享主机+ViewStateMac验证失败
所以,即使我开始怀疑这是否会得到回答,问题很简单... 我有一个网站,我想在其中使用推荐的ViewStateUserkey保护我的ViewState .. 在我的基本页面中(显然是从页面继承)我有此代码: protected override void OnInit(EventArgs e) { base.OnInit(e); if (User.Identity.IsAuthenticated) base.ViewStateUserKey = Session.SessionID; } 在Localhost上工作良好,但是,当我将其上传到托管(由我们的本地提供商提供的共享托管)上传时,它给出了传统的" ViewState Mac的验证"后,我进行了身份验证后.如果我评论此代码,它可以很好地工作,所以我1000%确定这是原因. 在共享托管上执行ViewState安全性的最佳方法是什么
0 2024-04-16
编程技术问答社区
为什么我不能在C#中设置这个ACL规则?
在Vista sp1上以抬高管理员的身份运行,我的C#应用​​程序试图使用以下代码设置以下规则.没有产生错误,但是目录的ACL上都没有任何更改.我想念什么? public static void Main( string args[] ) { string dirPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Company"), "Product" ); Directory.Create(dirPath); _SetAcl(dirPath, "Users", FileSystemRights.FullControl); } private static void _SetAcl(string path, string identity, FileSystemRights rights) { var in
0 2024-04-16
编程技术问答社区
.NET WebAPI的集中授权
在.NET WebAPI中,我创建了一种将所有授权规则放在中心位置的方法,而不是散布在整个控制器中.我很好奇为什么这种集中化不经常进行;有影响/安全问题吗? 我当前的方法是在app_start期间创建一个字典,其中包含我所有的授权数据,然后使用委托人汉德勒应用限制(下面的代码).字典键是控制器和操作的元组,值是授权角色.委托人与WebAPI的路由配置联系以获取哪个控制器,然后使用字典来确定是否允许请求. 字典: var authorizations = new Dictionary, string>(); authorizations.Add(new Tuple("values", "get"), "public"); authorizations.Add(new Tuple("values", "put"), "private"); 委托人: publ
0 2024-04-16
编程技术问答社区
活动目录和PrincipalPermission
这更像是一个好奇心,而不是寻求帮助的请求,但是我注意到,当使用princionalPermission并验证用户是Active Directory中特定组的一部分时,它将不使用True组名称,而是针对Pre-Pre-pre-验证Windows 2000组名称.通常,这不会有什么不同 - 除非有人碰巧使这些值不同. 谁能想到为什么.NET API使用该组名称而不是" true"名称?这给我带来了几个小时的悲伤和一些盲目的运气,终于弄清楚了. 解决方案 我假设(如果不进行测试并尝试此操作),princionalPermission属性将在Active Directory中使用" SamacCountName",以用于用户和组名称(例如"用户"或" Johndoe"),而不是")杰出的名称"(DN)您可能期望(" CN =用户"," CN = John Doe"). 这背后的原因很可能是您正在处理的情况,例如独立服务器或NT4域.在这些情况下,您根本没有任何基于广告的杰出名
0 2024-04-16
编程技术问答社区
SecurityAttribute.Unrestricted问题
我对此属性感到困惑,如下所述,我的困惑是为了直接理解,应该只有两个身份 - 被授予和不授予,全部和非满意是什么意思? 解决方案 我以前以经典方式使用了无限制的属性: 以下代码是一个请求,指出程序集必须不受限制地访问文件系统才能运行. using System.Security.Permissions; // Indicates that FileIOPermission is required to run this assembly. [assembly:FileIOPermission(SecurityAction.RequestMinimum, Unrestricted=true)] public class FileManager { // Insert code to add and delete files. } 在此上下文中,无限制= false将意味着要执行的方法不需要文件访问. . 与" Oppisite"相反,为了执行该方法,必须授予文件访
0 2024-04-16
编程技术问答社区
如何从客户端安全地发送密码?
我试图使我的REST API更安全.目前,我将密码放在Angular应用程序中,然后使用Cryptojs.sha256将密码发送到我的C#后端.但是我意识到,在服务器端哈密码最好.那么,如何仅发送服务器可读取的密码呢?我要添加SSL,但我知道HTTPS也很可能.还有其他解决方案吗? 谢谢 解决方案 作为Bruce Schneier say said 任何人都可以设计他本人无法打破的密码. 虽然没有100%无法破坏的东西,但是打破HTTP的比较要比打破JavaScript中制定的自制安全计划要难得多.考虑一下:如果您将超级安全JS服务于不受信任的(HTTP或HTTPS-With-with-valid-Certificate)连接,则是什么阻止攻击者替换损坏的版本,该版本将绕过所有JS安全性?什么都没有. 现代浏览器将竭尽全力,以防止HTTP被打破(使用HST等);因此,依靠https要安全得多(在正确使用时可以提供实际的安全 - "只忽略所有这些大红色错误是打破它的一
0 2024-04-16
编程技术问答社区
IOException。"客户不持有所需的特权。" 最好的克服方法是什么?
我正在使用C#编写Winform应用.在尝试创建文本文件时,我遇到了"客户不持有所需特权"的错误.我搜索了谷歌搜索,与用户的特权有关.简而言之,我不允许在我选择的路径中创建文件,即c:/ 尝试了此解决方案: http://www.technitips.com/2010/06/a-required-privilege-is-is-not-held-held-by-the-client-windows-7/,仅工作一次.克服这种错误的最佳方法是什么?我应该更改整个窗口的安全设置吗?或将路径更改为不需要管理员许可的地方? 解决方案 也许可以找到一个更好的folderpath > Environment.GetFolderPath(Environment.SpecialFolder.Personal)); 来自 作为文档的通用存储库的目录.这 成员等于mydocuments. 如果您只需要创建一个临时文件,就可以致电: Path.GetTempFilenam
0 2024-04-16
编程技术问答社区
Windows Azure管理库在网络工作上的认证错误
我构建了一个Azure Web作业控制台,它正在引用Windows Azure管理库. 我试图使用公共设置方法来验证我的应用. 该程序在我的本地工作正常,但是在X509Certificates错误的Azure Web作业上失败. 这是我为Web作业程序所做的. 从 https://windows.azure.com/azure.com/download/PublishProfile.aspx 在控制台应用程序上,从设置文件中创建凭据和粘贴订阅和证书字符串. new CertificateCloudCredentials( subscriptionId, new 509Certificate2(Convert.FromBase64String(base64EncodedCertificate))); 在Azure Web作业上部署并尝试了"按需运行". 错误 at System.Security.Cryptography.Cr
0 2024-04-16
编程技术问答社区
如何在与Laravel兼容的C#中加密#39;s加密?
我想知道如何在C#中正确加密,Laravel(PHP)可以通过加密来解密? 这是我的C#加密: private static readonly Encoding encoding = Encoding.UTF8; public static void Main(string[] args) { string key = "ysWZKXsnB1aS38Qzj5cza01wd3wT1234"; string text = "Here is some data to encrypt!"; string encrypted = encrypt(text, key); // Display the original data and the encrypted data. Console.WriteLine("Original: {0}", text); Con
0 2024-04-16
编程技术问答社区
如何在C#中为DSA密钥对创建一个带有自签名证书的PKCS12 p12文件?
我需要生成自己的DSA Keypair,并将其作为一包私钥和证书存储在.p12文件中. . 这个问题 如何创建PKCS12 .p12 .p12文件在C#? 似乎非常相似,但不幸的是,这对我没有帮助,因为存在一些显着差异(RSA vs dsa等) ) 我正在尝试使用System.Security.cryptography.dsacryptoserviceprovider生成Keypair,然后使用Bouncy Castle生成X509证书: using (DSACryptoServiceProvider csp = new DSACryptoServiceProvider(1024)) { privKeyDSA = csp.ExportParameters(true); pubKeyDSA = csp.ExportParameters(false); var keypair = DotNetUtilities.Ge
0 2024-04-16
编程技术问答社区
根据本地安全策略验证新的AD密码?
我想允许当前用户更改其密码(通过Active Directory管理). 我想验证并在Active Directory中设置其密码(当前使用 setPassword Invoke方法). 我的问题正在验证密码,以便满足复杂性要求: 不包含用户的帐户名称或 用户全名的一部分 超过两个连续字符 长度至少六个字符 包含三个字符 以下四个类别:英语 大写字符(A到Z) 英语小写字符(a 通过z)基础10位数字(0至 9)非字母字符(用于 示例,!,$,#,%)复杂性 当 密码已更改或创建. 我已经在两个文本框上使用了CompareValidator,所以我正在考虑添加RegularExpressionValidator( source 1 , source 2 ),但我不确定如何使其与整个"四个类别"中的整个"三个类别"一起工作: RegularExpressionValidator revComplex = new RegularExpressionValidat
0 2024-04-16
编程技术问答社区
ASP.NET成员C#-如何比较现有的密码/哈希值
我已经解决这个问题了一段时间.我需要比较用户进入会员数据库中的密码的PAASWORD.密码是哈希并带有盐的. 由于缺乏文档,我不知道盐是否添加到密码上,然后哈希是如何创建的. 我无法让它匹配.从函数返回的哈希(Hash)与DB中的哈希(Hash)不匹配,我知道它是相同的密码.微软似乎以不同的方式哈希密码. 我希望有人有一些见解. 这是我的代码: protected void Button1_Click(object sender, EventArgs e) { //HERE IS THE PASSWORD I USE, SAME ONE IS HASHED IN THE DB string pwd = "Letmein44"; //HERE IS THE SALT FROM THE DB string saltVar = "SuY4cf8wJXJAVEr3xjz4Dg==";
0 2024-04-16
编程技术问答社区
反映在混淆上是可能的
自上周以来,我一直在为这个问题而苦苦挣扎.我对申请的Exe感到困惑.我们的应用程序是用于在线Web应用程序的离线工具.客户端将安装此应用程序,然后将其连接到Internet,应用程序将下载相关信息,并将存储在客户端计算机上的XML文件中以进行进一步显示.出于安全目的,我们正在加密这些XML文件.不幸的是,我们在EXE内有一个方法getCryptxml,它将在客户端机器上读取加密设置.xml并在解密后将其返回.此设置.xml也包含其他XML的加密密钥. 问题我在这里面临的问题,即使在混淆之后,人也可以通过混淆名称来调用getCryptxml方法. 有什么办法可以解决这个问题? 这是我解决问题的想法,但我不确定如何实施. 我的想法:调用我的功能的唯一方法是通过使用InvokeMember()函数进行反思.在调用此功能之前,他/她需要使用此功能加载组件. Assembly.LoadFrom("myapplication.exe") 如果MyApplicatio
0 2024-04-16
编程技术问答社区
在web.config中保留敏感信息
将存储用户名或密码存储在web.config中是否安全,例如其他参数. ASP.NET MVC应用程序中的超时期?如果没有,是否可以使这些参数可靠,以便无法在已发布的服务器上的web.config文件中编码它们?另一方面,您是否建议将用户名,密码和其他常数参数存储在Class(*.cs)文件中作为静态值?您能否澄清我为存储此类参数更好的方法更好吗? 解决方案 您绝不应该将敏感数据存储在源代码中.您可以使用configSource属性来替换整个标记. ConnectionStrings.config应与web.config在同一文件夹中.最好保留扩展名.config,因为IIS不提供配置文件. 该文件必须被版本控制系统忽略. https://www.asp.net/in
0 2024-04-16
编程技术问答社区
如何在asp.net中保护/加密你的querystring?
我想知道如何在简单的ASP.NET页面中加密/解密您的Querystring? 某些值需要在不同页面之间传递,但无法更改或读取问题. 有人说httphandles可能是解决方案. 有什么想法吗? 更多背景信息: 嗨,所有评论. 这是问题所在,有时会议无缘无故地消失(嗯,必须有一个,但我还不知道).我研究了可能的原因,但没有任何可能导致它发生的原因. 因此,我不能再依靠它了. cookie解决方案是一种可能性,但是实施不仅仅是使用问题,要实现更多的工作. 可以随时复制URL只是不更改! 欢呼, m. 解决方案 您必须使用.NET加密之一手动对其进行加密.确实,这不是查询字符串的目的.如果您不希望用户能够访问它,则应该找到另一种在页面之间传递它的方式. 这是一个项目,将向您展示如何进行对称加密. 我敢提到这一点,因为它会创建重要的开销,但是您可以在视图状态下发布信息,并使用跨页帖子传递信息: 其他解决方案 我需要这样做,只是为了参考,这是我
0 2024-04-16
编程技术问答社区
.Net组件安全-防止黑客攻击/反向工程
我在最终用户上有智力 - 核能编码为.NET 2.0完全信任的程序集(.EXE + DLLS),我想保护它免受黑客入侵/反向工程的保护(WebS/Cloud-Comply-Computing Solutions不是一个选择).以下是我为实现此目标而收集的技术清单. 我的问题是: 我的假设正确,还是我在一种或多种技术中做错了什么? 为了防止恶意攻击,此列表是否足够,或者我还应该添加其他保护? 预先感谢. - 建议的技术 签名所有具有相同强名密钥的组件. 这有两个好处: a.确保对大会的任何修改都会使其无用, b.所有集会都将具有相同的公钥,他们可以互相识别. 以数字方式签署了组件:两者都让用户知道执行的代码来自正确的源, - 添加另一个可以互相识别的标识组件. 通过爬上呼叫堆并验证所有呼叫者都在"社区"中来执行上述. 可能的潜在客户: Hallgrim在中.线程. 丹尼尔·布鲁克纳(DanielBrückner)在 s.o.线程.
0 2024-04-16
编程技术问答社区
一个线程可以作为另一个用户执行吗? (.NET 2.0/3.5)
我有一个C#应用程序执行一些运行时汇编,其中包含计算为动态组件的源文件.显然,这提出了一个严重的安全问题. 从以下"公式"中,将生成以下代码,并创建一个动态组件: 公式: Int32 _index = value.LastIndexOf('.'); String _retVal = value.Substring(_index + 1); return _retVal; 生成的代码: using System; namespace Dynamics { public class Evaluator { public Object Evaluate(String value) { // Begin external code Int32 _index = value.LastIndexOf('.'); String _retVal = value.Substring(_index + 1);
0 2024-04-16
编程技术问答社区