Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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# 如何切实保护web.config_C#_Asp.net - Fatal编程技术网

C# 如何切实保护web.config

C# 如何切实保护web.config,c#,asp.net,C#,Asp.net,也许我完全理解错了,但正如我所理解的,保护连接字符串的最佳方法是对其进行加密,现在我有了这些问题 问题1: 加密在共享托管环境中是否有效 问题2: 如果我有FTP服务,任何用户都可以上传ASPX文件并通过configuration manager命名空间检索连接字符串吗?问题1: 您保护连接字符串的目的是什么 如果是针对黑客之类的,如果他们可以使用web.config,那么您的系统已经被破坏,您所能做的任何事情都无法帮助您 如果这是针对偶然的观察者(即编码者),那么即使是简单的base64编码也

也许我完全理解错了,但正如我所理解的,保护连接字符串的最佳方法是对其进行加密,现在我有了这些问题


问题1:

加密在共享托管环境中是否有效

问题2:


如果我有FTP服务,任何用户都可以上传ASPX文件并通过configuration manager命名空间检索连接字符串吗?

问题1:

您保护连接字符串的目的是什么

如果是针对黑客之类的,如果他们可以使用
web.config
,那么您的系统已经被破坏,您所能做的任何事情都无法帮助您

如果这是针对偶然的观察者(即编码者),那么即使是简单的base64编码也会有所帮助

问题2:


你不应该允许你的用户上传文件到一个可以执行aspx文件的目录,这样用户就可以做任何他们想做的事情。

1:我不明白为什么不可以


2:可能,尽管你应该采取措施防止这种情况。我发现最好的方法是使用windows身份验证,并将应用程序池的标识设置为在IIS中使用专用的、锁定的windows帐户。这样,您的连接字符串将永远不会包含密码。

不是对您的两个问题的回答,而是:
保护连接字符串的最佳方法是不要在连接字符串中使用需要密码的连接。NTLM或类似产品更安全。除此之外,如果用户有权访问FTP,加密就是所谓的隐蔽安全,可以很容易地逆转。

如何使其可逆?@devmania:将其设置为虚拟目录,并拒绝在IIS中对其执行。共享主机应仍然允许您这样做。与主机交谈以禁止该目录中的脚本。加密本身并不违反Kerckhoff定律(通过模糊性实现安全性的起源),但通常以这种方式使用。问题在于,您需要实施职责分离,以确保服务器端配置加密的安全性:一个密钥存储,其访问权限不允许服务器管理员访问,只允许代表授权用户检索密钥。如果基础设施(不是所有的数据库,唉!)支持,直接NTLM或Kerberos更简单。我的意思是不加密是不好的,但在指定的情况下,加密不会真正提高安全性。事实是,我不会让用户通过ftp访问配置目录,但我不想让他们上传aspx代码来检索连接字符串或任何敏感数据,这让我想知道,网络配置有多安全?我知道它被IIS阻止了访问,但黑客可以通过什么方式绕过它并访问它?如果黑客可以执行任何代码(上传aspx并运行,即是尼斯洞)-没关系,他会窃取你的密码-他已经完全可以访问你的所有数据和代码。若他需要加密连接字符串,那个么需要几分钟来避免。请记住,对于黑客来说,上传执行代码的可能性比你的任何密码都高100倍。所以,我只想找到一种方法来防止ftping aspx文件