Asp.net 在web.config中硬编码密码安全吗?

Asp.net 在web.config中硬编码密码安全吗?,asp.net,security,passwords,web-config,Asp.net,Security,Passwords,Web Config,以这种方式在asp.net-project的web.config中写入密码有多安全: <mailSettings> <smtp from="example@web.com"> <network host="smtp.web.com" port="123" userName="username@web.com" password="12345" enableSsl="true"/&g

以这种方式在asp.net-project的web.config中写入密码有多安全:

<mailSettings>
    <smtp from="example@web.com">
       <network host="smtp.web.com"
        port="123"
        userName="username@web.com"
        password="12345"
        enableSsl="true"/>
     </smtp>
</mailSettings>


我对互联网安全不太熟悉,所以如果这不安全,还有其他选择吗?

查看加密web.config部分

差不多

“aspnet\u regiis.exe-pef”system.net/mailSettings/smtp“C:\inetpub\wwwroot\website”-prov rsaptectedconfigurationprovider”

在部署到web场时,一定要考虑
的价值

如果您在web.config中设置
,基本上就是在释放解密密钥

所以就像大卫在上面的评论中说的,如果你愿意与那些有权访问你的代码的人分享秘密,那就好了

如果没有,请创建一个测试smtp环境,您不介意在其中共享凭据,并将这些凭据放在web.config中


或者在部署之前/之后,查看诸如用于本地测试的工具,并更改web.config中的值

只要您不介意任何可以访问源代码或文件系统的人能够看到该密码。这本身并不是一件坏事,这完全取决于您。如果您有
,您将有默认的错误页面,根据错误,该页面可能会显示
web.config文件的
部分。我会避免将它存储在那里。在普通配置文件中存储密码是一种不好的做法。最好将它们存储在环境变量中,这样它们就不会出现在版本控制系统中,或者如果您将应用程序部署到Azure,则有一个具有特殊配置文件()的解决方案