为了账号安全,请及时绑定邮箱和手机立即绑定

net/smtp 是否以纯文本形式发送凭据?

net/smtp 是否以纯文本形式发送凭据?

Go
至尊宝的传说 2021-10-04 17:12:14
我正在看这个例子。http://golang.org/pkg/net/smtp/#example_PlainAuthpackage mainimport (    "log"    "net/smtp")func main() {    // Set up authentication information.    auth := smtp.PlainAuth("", "user@example.com", "password", "mail.example.com")    to := []string{"recipient@example.net"}    mesg := []byte("This is the email body.")    err := smtp.SendMail("mail.example.com:25", auth, "sender@example.org", to, mesg)    if err != nil {        log.Fatal(err)    }}是否smtp.PlainAuth以纯文本形式向邮件服务器发送凭据?在野外使用 net/smtp 是否安全?
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

PlainAuth 使用来自 RFC 4616 的普通身份验证机制,这是纯明文形式的用户名/密码。通常,当您使用它时,加密将在较低级别处理,例如您将创建 TLS 连接。然后使用PlainAuth。如果您不是通过加密连接进行交谈,那么使用 PlainAuth 可能会有风险,就像流量被拦截一样,用户/通行证很容易获得。

但是如果你阅读,你会看到SendMail函数如下:

SendMail 在 addr 处连接到服务器,如果可能,切换到 TLS,如果可能,使用可选机制 a 进行身份验证,然后从 address from 发送一封电子邮件,到addresses to,带有消息 msg。

因此,它会在可能的情况下尝试自动升级到 TLS。所以只要你使用的是支持TLS的服务器,你应该是比较安全的。另一个 Auth 选择是 CramMD5,但服务器对这种方法的支持通常不如大多数东西都支持的 PlainAuth。


查看完整回答
反对 回复 2021-10-04
  • 1 回答
  • 0 关注
  • 226 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信