Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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# encrypt web.config是最佳实践吗_C#_Asp.net_Security_Encryption_Web Config - Fatal编程技术网

C# encrypt web.config是最佳实践吗

C# encrypt web.config是最佳实践吗,c#,asp.net,security,encryption,web-config,C#,Asp.net,Security,Encryption,Web Config,目前,我们正在开发一个面向公众开放的网站。我们非常重视安全问题 我们在web.config上有很多敏感信息,比如数据库连接字符串,我们应该加密这些数据库连接字符串信息吗?或者,我们应该加密整个web.config文件吗 有谁能告诉我黑客是如何获得web.config信息的吗?这个web.config被明确排除在ASP.NET之外。除非你真的搞砸了,否则你不能访问那个文件(也就是说,你仍然可以从磁盘上读取文件,然后自己提供) 你不需要外界的特别保护。内部世界可能和外部世界一样危险:如果许多用户可以

目前,我们正在开发一个面向公众开放的网站。我们非常重视安全问题

我们在web.config上有很多敏感信息,比如数据库连接字符串,我们应该加密这些数据库连接字符串信息吗?或者,我们应该加密整个web.config文件吗


有谁能告诉我黑客是如何获得web.config信息的吗?

这个
web.config
被明确排除在ASP.NET之外。除非你真的搞砸了,否则你不能访问那个文件(也就是说,你仍然可以从磁盘上读取文件,然后自己提供)


你不需要外界的特别保护。内部世界可能和外部世界一样危险:如果许多用户可以从您的组织内部访问web.config文件,您可能会公开连接字符串中设置的用户名和密码。为此,最好使用集成安全性:您不再需要用户名和密码。没有比这更节省的了。

您至少应该加密所有敏感信息。其余的意见有待商榷。黑客获取未加密的web.config文件的方式可能是通过应用程序中的安全漏洞(下载文件的未验证路径)、服务器软件(IIS?)中的安全漏洞、在至少具有文件读取权限的用户下运行的完全不同的应用程序中的安全漏洞,还有大约一百万个其他原因,包括一个“黑客”刚刚闯入大楼并抢走了整个服务器。如果您使用Windows安全和具有特定受限权限的域帐户,则无需加密连接字符串。如果没有密码可丢失,则没有丢失密码的风险。更改服务帐户密码sas@PanagiotisKanavos comments也容易得多,最好的方法是不要求敏感信息存在,而是将其内置到环境中已经存在的机制中。在Windows 2012+中,您可以使用。这些是特殊帐户,其凭据由域以类似于计算机帐户的方式管理。没有可丢失的可见密码。实际密码每30天更改一次。组管理的帐户可以在场中的多台服务器上使用。独立帐户(自2K8R2起提供)仅在一台计算机上使用