在 web.config 中硬编码密码安全吗?
Is it safe to hardcode a password in 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>
我对互联网安全不太熟悉,所以如果这不安全,还有其他选择吗?
查看加密 web.config 部分。
https://msdn.microsoft.com/en-us/library/bb986855.aspx
类似于
"aspnet_regiis.exe -pef "system.net/mailSettings/smtp" "C:\inetpub\wwwroot\website" -prov RSAProtectedConfigurationProvider"
部署到网络场时请考虑 <machineKey>
价值。
如果您在 web.config 中设置 <machineKey>
,您基本上是在泄露要解密的密钥。
所以就像大卫在上面的评论中所说的那样,如果您愿意与有权访问您的代码的人分享秘密,那就没问题了。
如果没有,请创建一个您不介意共享凭据的测试 smtp 环境,并将这些凭据放入 web.config。
或查看 Papercut 等工具进行本地测试,并更改 web.config 右侧 before/after 部署中的值。
像这样在 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>
我对互联网安全不太熟悉,所以如果这不安全,还有其他选择吗?
查看加密 web.config 部分。
https://msdn.microsoft.com/en-us/library/bb986855.aspx
类似于
"aspnet_regiis.exe -pef "system.net/mailSettings/smtp" "C:\inetpub\wwwroot\website" -prov RSAProtectedConfigurationProvider"
部署到网络场时请考虑 <machineKey>
价值。
如果您在 web.config 中设置 <machineKey>
,您基本上是在泄露要解密的密钥。
所以就像大卫在上面的评论中所说的那样,如果您愿意与有权访问您的代码的人分享秘密,那就没问题了。
如果没有,请创建一个您不介意共享凭据的测试 smtp 环境,并将这些凭据放入 web.config。
或查看 Papercut 等工具进行本地测试,并更改 web.config 右侧 before/after 部署中的值。