【问题标题】:Specifiying network credentials in ASPX.CS page or Web.Config在 ASPX.CS 页面或 Web.Config 中指定网络凭据
【发布时间】:2014-01-24 08:59:17
【问题描述】:

这是我在 ASP.net 网站上使用简单的发送电子邮件功能时的一个随机想法:

MailMessage mailMessage = new MailMessage();
mailMessage.To.Add("test@gmail.co.uk");
mailMessage.From = new MailAddress("test2@gmail.com");
System.Net.NetworkCredential basicauthenticationinfo = new    
System.Net.NetworkCredential("username", "pass123");

以上是让我思考的代码摘录。部署站点后,“查看源代码”允许我查看站点的 HTML,但我找不到任何方法来查看其后面的 ASPX.CS 文件中的 C# 编码。我也尝试使用 FireBug,但没有运气。那么可以肯定地说,任何浏览我网站的人都无法看到上述信息吗?

我见过上面代码的其他示例,人们通常在 Web.Config 文件中指定 NetworkCredentials。这有没有更安全的好处?

主要思想是为了安全起见,在这种情况下尽可能多地使用 Webconfig,还是只是为了保持代码“整洁”?

【问题讨论】:

  • .cs 代码和web.config 都是服务器端,因此它们不会通过网络发送,也不会在网络浏览器中显示。
  • 感谢您的澄清!

标签: c# asp.net security web-config networkcredentials


【解决方案1】:

web.config 文件是一个更好的地方,好处是:

  • 配置信息在一个配置文件中,您可以轻松配置;
  • *.config 文件被 ASP.NET 视为特殊保护的文件,它们永远不会被提供;
  • 您可以在没有实际配置文件的情况下将代码发布到 Git 网站上,并确保不会打开任何安全漏洞。

通过对配置信息进行硬编码,您将放弃这些好处,并在安全方面让您的生活更加艰难。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    相关资源
    最近更新 更多