对AZ Man On Winforms项目的安全问题

时间:2013-04-19 15:05:27

标签: azman

我正在使用企业库和AZ Man将用户身份验证到我的winforms应用程序中。我已经使用XML文件正常运行了代码。我不明白如何安全地部署应用程序。

在app.config中有一个XML文件的路径。似乎没有任何东西阻止用户在azman.msc中打开这个XML文件并给自己提供他们不应该访问的文件。

如果我们将XML文件放在服务器上并使其只读给用户,则没有什么能阻止用户在本地复制所有内容并将app.config指针更改为他们可以写入的本地文件。

这里似乎有一些重要的东西,但我一直在阅读,无法弄明白。

1 个答案:

答案 0 :(得分:1)

我认为你可能想要做的是在Active Directory中创建授权存储而不是xml文件。您可以找到有关如何执行此操作的说明here。这是有趣的一点:

  

使用授权商店

     

创建授权存储

     
      
  1. 打开授权管理器,右键单击“授权管理器”,单击“确定”   选项,选择开发人员模式,然后单击确定。
  2.   
  3. 在   授权管理器控制台,右键单击授权管理器,   单击“新建”,然后单击“授权存储”。
  4.   
  5. 选择“有效”   目录或XML文件作为商店类型。
  6.   
  7. 在中输入完整的商店名称   “商店名称”框,或使用“位置”按钮选择位置   使用“新建授权存储”对话框。
  8.   
  9. 如果是活跃的   目录授权存储,使用LDAP名称 - 例如   CN = myStore,CN =程序数据,OU =授权,DN = myCompany,DN = com。如果它   是一个XML授权存储,使用将要的路径和文件名   在运行时有效 - 例如C:\ AuthStores \ MyStore.xml。
  10.   
  11. 键入a   “描述”框中新授权存储的描述,以及   然后单击“确定”。
  12.         

    注意:只能在开发人员模式下创建授权存储。看到   “设置授权管理器选项”部分   有关设置开发者模式的说明的文章。

在Active Directory中创建商店后,您可以限制谁具有对AD和AzMan商店的写入权限。如果需要,您还可以在SQL中创建商店。

您拥有的另一个选项是在app.config中加密连接字符串到AzMan。由于您使用的是Enterprise Library,我认为您可以选择加密整个AzMan xml文件。这些都不是完全防弹的,但是您的用户必须经历很多的麻烦来破解您的应用程序。但是,如果您的用户愿意花费很多精力来闯入您的计划,那么您就没有编程问题 - 您需要解决人事问题(无论如何,我的意见)。

This看起来是加密app.config部分的一个很好的演练。从本质上讲,我认为您的想法是在工作站上创建一个新的RSA密钥,并使用该密钥加密app.config部分。然后将该密钥导入服务器并授予用户对该密钥的读取权限。我确信如果你使用谷歌(或在stackoverflow上搜索),还有很多其他的加密解决方案。