首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WPF中向app.config文件添加一些基本的安全层

问在WPF中向app.config文件添加一些基本的安全层
EN

Stack Overflow用户
提问于 2018-04-03 18:39:20
回答 2查看 1.1K关注 0票数 1

最近我有点担心我的WPF应用程序的安全性。我刚刚开始,所以安全性不是我的主要关注点,但现在我有点担心有人会打开程序文件夹中的.exe.config文件,并在那里使用凭证。使用这个基本的CRUD应用程序的人可能不知道如何处理它,即使他们得到了它,但我不想冒任何风险。

我只是在寻找最简单的方法来隐藏它,要么使用外部配置文件,要么加密它。我已经在堆栈溢出上尝试了所有可能的答案,但我只是找到了一种简单的方法。

下面是我的app.config文件的样子:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c666935e080" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <connectionStrings>
    <add name="DailyEntities" connectionString="metadata=res://*/Model.MyModel.csdl|res://*/Model.MyModel.ssdl|res://*/Model.MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xx.xxx.xx.xx,port;initial catalog=MyDB;user id=testsubject;password=password;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

下面是我已经尝试过的:保护App.Config文件或加密

我遇到的问题是,它加密了文件,并且在我的机器上工作得很好,但是我不能在另一台机器上部署它。

和Microsoft文档

有人能帮忙做一些简单的、令人沮丧的建议/例子吗?我不想使用Windows身份验证,也不想为了实现这一点而编写大量代码。只是为了让你更难拿到证书。

EN

回答 2

Stack Overflow用户

发布于 2018-04-03 18:56:39

简单的回答是:你不能--你在WPF代码中放的任何东西都不可能是安全的。

当然,您可以采取一些步骤,比如对配置文件中的值进行编码,然后让代码对它们进行解密。问题是,潜在的攻击者可以简单地将应用程序转储到反编译程序中(如DotPeek),并查看您的解密方法是什么。基本上,唯一能阻止的人就是那些侵入你的系统最不危险的人。

通常,您希望在应用程序和DB之间设置一个层,以便攻击者拆卸WPF应用程序时不会与数据库有原始连接。这样,他们就可以得到一个WebService的地址,而不是让攻击者直接进入数据库。最糟糕的情况是,他们开始自己打电话给WebService ABC,但这比他们直接访问数据库要好得多。

票数 2
EN

Stack Overflow用户

发布于 2019-03-07 21:03:09

我只想说,微软在ASP.Net中为ASP.Net文件提供自动加密,而不是在WPF /桌面应用程序中提供自动加密,这是绝对荒谬的,也是毫无意义的。

真的吗微软?基本上没有好的答案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49637037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档