Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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# 从机密文件中读取_C#_Winforms_Security_Deployment - Fatal编程技术网

C# 从机密文件中读取

C# 从机密文件中读取,c#,winforms,security,deployment,C#,Winforms,Security,Deployment,(看我在那里做了什么?) 我正在开发一个WinForms应用程序,它需要从包含敏感信息的文件中检索信息。检索到的信息用于执行一些复杂的计算,但它包括大公司员工的某些工资级别的工资等内容。WinForms应用程序最终需要部署到该公司的成员,但我需要确保不会向他们透露此文件的内容 该文件本身是一个JSON文件,当前存储在Visual Studio项目文件结构的本地 如果我通过VisualStudio的Build菜单“发布”这个应用程序,并通过web链接发布它,人们能够打开这个JSON文件并查看它吗?

(看我在那里做了什么?)

我正在开发一个WinForms应用程序,它需要从包含敏感信息的文件中检索信息。检索到的信息用于执行一些复杂的计算,但它包括大公司员工的某些工资级别的工资等内容。WinForms应用程序最终需要部署到该公司的成员,但我需要确保不会向他们透露此文件的内容

该文件本身是一个JSON文件,当前存储在Visual Studio项目文件结构的本地

如果我通过VisualStudio的Build菜单“发布”这个应用程序,并通过web链接发布它,人们能够打开这个JSON文件并查看它吗?如果是这样的话,有没有办法避免这种情况?我已经考虑过在线存储文件并通过HTTP请求访问它,但是我对这方面了解不多,所以可以提供一些建议

干杯,
Josh

我将考虑创建一个单独的(WebAPI或WCF)服务,该服务可以访问该文件,并知道如何将其面向公众的部分提供给您的应用程序

因此,我们假设文件位于
\\hrserver\C$\sensitive.dat
。您的服务可以访问该文件,但客户端应用程序不能。您的客户端应用程序访问该服务(
https://hrserverhelper/GetHrData
),它封装了该文件的身份验证/授权。然后它解析出敏感数据(可能来自您已经为该文件创建的JSON),并将非敏感数据传递给您的客户端应用程序

如果文件中的所有数据都是敏感的,那么让您的服务提供操作来执行WinForms应用程序当前执行的计算。例如,您的WinForms应用程序将其希望执行的输入提交给一个WebMethod,该WebMethod知道如何使用敏感数据执行这些计算—WebMethod会输出结果


但是,在这种情况下,请注意,基本的数学技能很可能能够对此处的“敏感”数据进行反向工程。如果我提交2并返回4,提交3并返回6,我将假设“敏感”数字是2。

我将考虑创建一个单独的(WebAPI或WCF)服务,该服务可以访问该文件,并知道如何将其面向公众的部分提供给您的应用程序

因此,我们假设文件位于
\\hrserver\C$\sensitive.dat
。您的服务可以访问该文件,但客户端应用程序不能。您的客户端应用程序访问该服务(
https://hrserverhelper/GetHrData
),它封装了该文件的身份验证/授权。然后它解析出敏感数据(可能来自您已经为该文件创建的JSON),并将非敏感数据传递给您的客户端应用程序

如果文件中的所有数据都是敏感的,那么让您的服务提供操作来执行WinForms应用程序当前执行的计算。例如,您的WinForms应用程序将其希望执行的输入提交给一个WebMethod,该WebMethod知道如何使用敏感数据执行这些计算—WebMethod会输出结果

但是,在这种情况下,请注意,基本的数学技能很可能能够对此处的“敏感”数据进行反向工程。如果我提交2得到4,我提交3得到6,我会假设“敏感”数字是2

如果我通过VisualStudio的Build菜单“发布”这个应用程序,并通过web链接发布它,人们能够打开这个JSON文件并查看它吗

如果是这样的话,有没有办法避免这种情况

仅通过不发布该文件

您应该考虑将此信息存储在只能通过HTTPS授权帐户访问的数据库中。我建议使用WCF,因为它可以很好地与C#和WinForms集成。最好的方法是在服务器端执行计算(在WCF服务本身中或作为数据库中的存储过程)。因此,您只需要在客户机上收集输入,将其传递回服务器,然后显示结果

您还可以记录访问此数据的所有尝试(成功或失败),以便获得完整的审核跟踪。如有必要,您还可以向其他客户端公开WCF服务

如果我通过VisualStudio的Build菜单“发布”这个应用程序,并通过web链接发布它,人们能够打开这个JSON文件并查看它吗

如果是这样的话,有没有办法避免这种情况

仅通过不发布该文件

您应该考虑将此信息存储在只能通过HTTPS授权帐户访问的数据库中。我建议使用WCF,因为它可以很好地与C#和WinForms集成。最好的方法是在服务器端执行计算(在WCF服务本身中或作为数据库中的存储过程)。因此,您只需要在客户机上收集输入,将其传递回服务器,然后显示结果


您还可以记录访问此数据的所有尝试(成功或失败),以便获得完整的审核跟踪。如有必要,您还可以向其他客户公开您的WCF服务。

当您说“面向公众”。。。如果我假设我有一个使用输入x,y和z的计算。将它们放入一个框中,在该框中使用敏感信息进行计算以执行该计算,并获得输出x1、y1和z1。你是否认为已经被要求和使用的信息是“面向公众”?因为这就是我想要避免的。我假设你有独立的端口