例子:err := Db.Find(&event, id).Errorif err != nil { c.JSON(500, err.Error()) return}我担心它可能包含敏感信息。示例:当连接到数据库并且数据库凭据无效时,我担心错误消息可能类似于:“无效的用户名:样本和密码:xxx”
2 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
您有效地回答了您自己的问题:您指出它可能包含敏感信息,这意味着将它们包含在用户可见的响应中并不总是安全的。
它还可能包含与您的实现相关的信息(例如包名称、类型名称、调用层次结构),以及配置数据(例如服务器名称、数据库名称、用户名等),可能会暴露私有和敏感的架构和业务信息。
想一想:你是一个包作者,你创建了error
你的函数/方法返回的值(错误消息)。您创建描述性错误消息来描述为什么请求的函数无法正常完成,用于该函数/方法的调用者(开发人员),而不是最终用户 - 他们不应该知道幕后发生了什么。
error.Error()
消息是给开发人员的。它们在测试期间也很有用。它们对于追捕虫子是必不可少的。您不应将它们显示给用户,而是将它们记录到您有权访问的位置,并向用户提供更一般或用户友好的错误消息,确保他们已通知开发团队并正在调查问题。显示原始错误消息可能会使没有经验的用户感到困惑,并可能引发安全问题。
jeck猫
TA贡献1909条经验 获得超7个赞
最好的方法是写入错误日志,并自定义数据库错误信息以供返回。
喜欢:
var (
ErrEventNotFound = "Event not found."
)
err := Db.Find(&event, id).Error
if err != nil {
// Log to file
c.JSON(500, ErrEventNotFound)
return
}
- 2 回答
- 0 关注
- 334 浏览
添加回答
举报
0/150
提交
取消