Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用文本文档打开时显示敏感信息的Exe_C#_Visual Studio_Security - Fatal编程技术网

C# 使用文本文档打开时显示敏感信息的Exe

C# 使用文本文档打开时显示敏感信息的Exe,c#,visual-studio,security,C#,Visual Studio,Security,我最近发现,我发布的程序使用Visual Studio用C#编写,在将exe拖到文本文档中时,会以纯文本显示密码和sql语句。密码很容易加密,但我在太多不同的程序中有太多的sql语句,无法轻松地遍历和加密每一个。如何将纯文本中的信息变成不可读的符号?如注释中所述,在程序中隐藏信息是不可能的,只要它需要能够自行破译。您需要将敏感数据和功能移动到其他地方,并仅为二进制发行版提供所需的权限。例如,它可以存储一个API密钥,以便向后端服务发出授权请求。如注释中所述,只要程序需要能够自行破译,就不可能在程

我最近发现,我发布的程序使用Visual Studio用C#编写,在将exe拖到文本文档中时,会以纯文本显示密码和sql语句。密码很容易加密,但我在太多不同的程序中有太多的sql语句,无法轻松地遍历和加密每一个。如何将纯文本中的信息变成不可读的符号?

如注释中所述,在程序中隐藏信息是不可能的,只要它需要能够自行破译。您需要将敏感数据和功能移动到其他地方,并仅为二进制发行版提供所需的权限。例如,它可以存储一个API密钥,以便向后端服务发出授权请求。

如注释中所述,只要程序需要能够自行破译,就不可能在程序中隐藏信息。您需要将敏感数据和功能移动到其他地方,并仅为二进制发行版提供所需的权限。例如,它可以存储API密钥以向后端服务发出授权请求。

您不保护二进制文件中的机密。重新设计时假设有人想要闯入,可以访问二进制文件中的所有秘密

很久以前我们就有了这个坏主意。我们已经保护了密码,防止在文本编辑器中打开这些琐碎的事情发生。我演示了如何在五分钟内获得密码

今天它变得更容易了。
System.Data.SqlClient
的参考源已经发布,您可以获得
System.Data.SqlClient
.pdb
文件。假设想要钥匙的人能做到这一点

计算机安全有一个基本定理:远程认证是不可能的。您只能验证用户,不能验证程序


我们可以说,有些事情会减慢人们对软件进行反向工程的速度,第二个问题是“不要使用.NET。”

您不保护二进制文件中的机密。重新设计时假设有人想要闯入,可以访问二进制文件中的所有秘密

很久以前我们就有了这个坏主意。我们已经保护了密码,防止在文本编辑器中打开这些琐碎的事情发生。我演示了如何在五分钟内获得密码

今天它变得更容易了。
System.Data.SqlClient
的参考源已经发布,您可以获得
System.Data.SqlClient
.pdb
文件。假设想要钥匙的人能做到这一点

计算机安全有一个基本定理:远程认证是不可能的。您只能验证用户,不能验证程序



我们可以说,有些事情会减缓人们对软件进行反向工程的速度,第二个问题是“不要使用.NET”。

@Joshua不妨将此作为一个答案发布出来。我知道仍然可以提取所有信息,但如果不是纯文本,进入的障碍会更大。奇怪的是,没有办法以不同的方式编译它。对于像
hexeditor
ollydbg
.Net Reflector
等每个程序。。。每个人都可以清楚地看到您的代码。也许混淆代码可以避免阅读代码。为什么会很奇怪?一直都是这样。不仅仅是.NET。事实上,Linux有一个几十年来人们一直在本机可执行文件上使用的命令。@NicholasChowdhury:如果有人除了把你的文件拖到一个文本编辑器中之外就懒得做更多的事情,那么他们可能就懒得找一些与这些信息有关的顽皮的东西了。如果他们真的想对你做坏事,那么如果你所做的只是防止在文本编辑器中打开,那么你基本上没有做任何保护自己的事情。事实上,如果程序要连接到SQL server,那么它必须有这样做的信息,如果程序有这样的信息,那么用户也会这样做,如果他们愿意的话。@Joshua不妨将此作为一个答案。我理解仍然可以提取所有信息,但如果不是纯文本的话,进入的门槛会更高。奇怪的是,没有办法以不同的方式编译它。对于像
hexeditor
ollydbg
.Net Reflector
等每个程序。。。每个人都可以清楚地看到您的代码。也许混淆代码可以避免阅读代码。为什么会很奇怪?一直都是这样。不仅仅是.NET。事实上,Linux有一个几十年来人们一直在本机可执行文件上使用的命令。@NicholasChowdhury:如果有人除了把你的文件拖到一个文本编辑器中之外就懒得做更多的事情,那么他们可能就懒得找一些与这些信息有关的顽皮的东西了。如果他们真的想对你做坏事,那么如果你所做的只是防止在文本编辑器中打开,那么你基本上没有做任何保护自己的事情。事实上,如果程序要连接到SQL server,那么它必须有这样做的信息,如果程序有这样的信息,那么用户也会这样做,如果他们愿意的话。我不认为.net是问题所在。一个从一开始就考虑到安全性的正确架构的解决方案是。@SteveJ:他关心SQL语句。这是在逆向工程领域。我不能告诉他不要担心。我可以告诉他这太贵了,我有。我想多了解一下这个程序的功能会有帮助。是客户端/服务器。它是否与API等通信。@Joshua.NET程序在暴露敏感信息方面如何比本机二进制文件更有问题?@itsme86:它们不是。编写本机代码后可以执行一些步骤,这会带来实际困难,但会破坏.NET二进制文件。我认为.NET不是问题所在。一个从一开始就考虑到安全性的架构合理的解决方案是。@SteveJ:He