在web.config中对密码进行硬编码是否安全?

时间:2018-05-15 13:21:10

标签: asp.net security passwords web-config

以这种方式在asp.net项目的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>

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

1 个答案:

答案 0 :(得分:1)

查看加密web.config部分。

https://msdn.microsoft.com/en-us/library/bb986855.aspx

https://stackoverflow.com/a/6224769/461822

这样的东西

"aspnet_regiis.exe -pef "system.net/mailSettings/smtp" "C:\inetpub\wwwroot\website" -prov RSAProtectedConfigurationProvider"

在部署到Web场时,请考虑<machineKey>值。

如果您在web.config中设置了<machineKey>,那么您基本上就会放弃要解密的密钥。

就像大卫在上面的评论中所说,如果你能够与有权访问你的代码的人分享秘密,那么就可以了。

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

或者查看Papercut之类的工具进行本地测试,并在部署之前/之后更改web.config中的值。