添加 HTML 转义,防止邮件内容中的 HTML 注入攻击
All checks were successful
Build / build (pull_request) Successful in 5m5s
Build / build-docker (pull_request) Successful in 3m25s

This commit is contained in:
WuYuuuub
2026-01-13 18:41:35 +08:00
parent 3e8b7d150d
commit 133c46c086

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"net/smtp"
"net/textproto"
"html"
"carrotskin/pkg/config"
@@ -70,8 +71,6 @@ func (s *Service) send(to []string, subject, body string) error {
addr := fmt.Sprintf("%s:%d", s.cfg.SMTPHost, s.cfg.SMTPPort)
// 判断端口决定发送方式
// 465端口使用SSL/TLS隐式TLS
// 587端口使用STARTTLS显式TLS
var err error
if s.cfg.SMTPPort == 465 {
// 使用SSL/TLS连接适用于465端口
@@ -132,6 +131,10 @@ func (s *Service) getBody(code, purpose string) string {
message = "您的验证码为:"
}
// 转义 HTML 特殊字符
escapedMessage := html.EscapeString(message)
escapedCode := html.EscapeString(code)
return fmt.Sprintf(`
<!DOCTYPE html>
<html>
@@ -158,5 +161,5 @@ func (s *Service) getBody(code, purpose string) string {
</div>
</body>
</html>
`, message, code)
`, escapedMessage, escapedCode)
}