Documentation ¶
Index ¶
- type CWE
- type CodeType
- type ComponentVul
- type I18nText
- func (x I18nText) Append(language language.Tag, text string) I18nText
- func (x I18nText) Merge(language language.Tag, text string) I18nText
- func (x I18nText) MergeAll(i18nText I18nText) I18nText
- func (x *I18nText) Scan(src any) error
- func (x I18nText) Set(language language.Tag, text string) I18nText
- func (x I18nText) SetAll(i18nText I18nText) I18nText
- func (x I18nText) Value() (driver.Value, error)
- type License
- type MavenComponentVul
- type Reference
- type References
- type Vul
- func (x *Vul) MergeDescription(language language.Tag, description string) *Vul
- func (x *Vul) MergeDescriptionAll(description I18nText) *Vul
- func (x *Vul) MergeReferences(language language.Tag, reference *Reference) *Vul
- func (x *Vul) MergeReferencesAll(references References) *Vul
- func (x *Vul) MergeTitle(language language.Tag, title string) *Vul
- func (x *Vul) MergeTitleAll(title I18nText) *Vul
- func (x *Vul) TableName() string
- func (x *Vul) UpdateDescription(language language.Tag, description string) *Vul
- func (x *Vul) UpdateDescriptionAll(description I18nText) *Vul
- func (x *Vul) UpdateReferences(language language.Tag, reference *Reference) *Vul
- func (x *Vul) UpdateReferencesAll(references References) *Vul
- func (x *Vul) UpdateTitle(language language.Tag, title string) *Vul
- func (x *Vul) UpdateTitleAll(title I18nText) *Vul
- type VulCode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ComponentVul ¶
type ComponentVul struct { // 组件的名字 Name string `mapstructure:"name" json:"name,omitempty" yaml:"name" db:"name" gorm:"column:name;index:component_vuls,unique"` // 组件的版本 Version string `mapstructure:"version" json:"version,omitempty" yaml:"version" db:"version" gorm:"column:version;index:component_vuls,unique"` // 漏洞的ID VulId string `mapstructure:"vul_id" json:"vul_id,omitempty" yaml:"vul_id" db:"vul_id" gorm:"column:vul_id;index:component_vuls,unique"` // 创建时间 CreateTime *time.Time `mapstructure:"create_time" json:"create_time,omitempty" yaml:"create_time" db:"create_time" gorm:"create_time"` UpdateTime *time.Time `mapstructure:"update_time" json:"update_time,omitempty" yaml:"update_time" db:"update_time" gorm:"update_time"` ChangeTime *time.Time `mapstructure:"change_time" json:"change_time,omitempty" yaml:"change_time" db:"change_time" gorm:"change_time"` }
ComponentVul 组件漏洞表
func (*ComponentVul) BuildComponentId ¶
func (x *ComponentVul) BuildComponentId() string
BuildComponentId 组件的唯一标识符
func (*ComponentVul) TableName ¶
func (x *ComponentVul) TableName() string
type I18nText ¶
I18nText 支持国际化的文本
func NewI18nText ¶
func NewI18nText() I18nText
type License ¶
type License struct { Identifier string `mapstructure:"identifier" json:"identifier,omitempty" yaml:"identifier" db:"identifier" gorm:"column:identifier;primaryKey"` LevelId int `mapstructure:"level_id" json:"level_id,omitempty" yaml:"level_id" db:"level_id" gorm:"column:level_id"` // 默认值: 允许商业集成 LevelDesc string `mapstructure:"level_desc" json:"level_desc,omitempty" yaml:"level_desc" db:"level_desc" gorm:"column:level_desc"` CreateAt time.Time `mapstructure:"create_at" json:"create_at,omitempty" yaml:"create_at" db:"create_at" gorm:"column:create_at"` UpdateAt time.Time `mapstructure:"update_at" json:"update_at,omitempty" yaml:"update_at" db:"update_at" gorm:"column:update_at"` }
func NewLicensesLevel ¶
func NewLicensesLevel() *License
type MavenComponentVul ¶
type MavenComponentVul struct { // Maven组件的唯一标识 GroupId string `` /* 136-byte string literal not displayed */ ArtifactId string `` /* 151-byte string literal not displayed */ Version string `` /* 131-byte string literal not displayed */ // 关联到的漏洞的ID VulId string `` /* 126-byte string literal not displayed */ // 创建时间 CreateTime *time.Time `mapstructure:"create_time" json:"create_time,omitempty" yaml:"create_time" db:"create_time" gorm:"create_time"` UpdateTime *time.Time `mapstructure:"update_time" json:"update_time,omitempty" yaml:"update_time" db:"update_time" gorm:"update_time"` }
MavenComponentVul TODO 准备废弃
func (*MavenComponentVul) TableName ¶
func (x *MavenComponentVul) TableName() string
type Reference ¶
type Reference struct { *osv_schema.Reference `mapstructure:",squash" json:",squash" yaml:",squash" db:",squash" bson:",squash" gorm:"column:type"` Language *language.Tag `mapstructure:"language" json:"language" yaml:"language" db:"language" bson:"language" gorm:"column:language"` }
Reference 漏洞的引用文章,在OSV的Reference的基础上扩展了语言字段,以便能够在国际化的时候根据不同的语言返回不同的引用文章
func NewReference ¶
func NewReference(language language.Tag, referenceType osv_schema.ReferenceType, referenceUrl string) *Reference
NewReference 创建引用类型
func NewReferenceFromOsv ¶
func NewReferenceFromOsv(language language.Tag, reference *osv_schema.Reference) *Reference
NewReferenceFromOsv 从OSV的引用中创建sca的支持i18n的引用
type References ¶
type References []*Reference
func NewReferencesFromOsv ¶
func NewReferencesFromOsv(language language.Tag, osvReferences osv_schema.References) References
NewReferencesFromOsv 从OSV的引用中创建sca的支持i18n的引用
func (References) ContainsUrl ¶
func (x References) ContainsUrl(url string) bool
ContainsUrl 判断引用中是否包含给定的URL
func (References) FilterByLanguage ¶
func (x References) FilterByLanguage(language language.Tag) References
FilterByLanguage 根据引用的语言来过滤,一般用于国际化
func (References) FilterByType ¶
func (x References) FilterByType(referenceTypes ...osv_schema.ReferenceType) References
FilterByType 根据引用文章的类型来过滤
func (*References) Scan ¶
func (x *References) Scan(src any) error
type Vul ¶
type Vul struct { // 漏洞ID VulId string `mapstructure:"vul_id" json:"vul_id,omitempty" yaml:"vul_id" db:"vul_id" gorm:"column:vul_id;primaryKey"` // 漏洞的CVSS3评分 CVSS3 string `mapstructure:"cvss_v3" json:"cvss_v3,omitempty" yaml:"cvss_v3" db:"cvss_v3" gorm:"column:cvss_v3"` // 漏洞的cwe,json的string array CWE osv_schema.Aliases `mapstructure:"cwe" json:"cwe,omitempty" yaml:"cwe" db:"cwe" gorm:"column:cwe;serializer:json"` // 漏洞的标题 Title I18nText `mapstructure:"title" json:"title,omitempty" yaml:"title" db:"title" gorm:"column:title;serializer:json"` // 漏洞的描述 Description I18nText `` /* 133-byte string literal not displayed */ // 漏洞相关的引用文章 References References `` /* 128-byte string literal not displayed */ Severity string `mapstructure:"severity" json:"severity,omitempty" yaml:"severity" db:"severity" gorm:"column:severity"` // 漏洞的发布时间 PublishedTime *time.Time `` /* 132-byte string literal not displayed */ // 几个时间 CreateTime *time.Time `mapstructure:"create_time" json:"create_time,omitempty" yaml:"create_time" db:"create_time" gorm:"column:create_time"` UpdateTime *time.Time `mapstructure:"update_time" json:"update_time,omitempty" yaml:"update_time" db:"update_time" gorm:"column:update_time"` ChangeTime *time.Time `mapstructure:"change_time" json:"change_time,omitempty" yaml:"change_time" db:"change_time" gorm:"column:change_time"` }
Vul 表示一条漏洞信息
func (*Vul) MergeDescription ¶
MergeDescription 把给定的语言合并到描述中,如果已经存在的话则忽略
func (*Vul) MergeDescriptionAll ¶
func (*Vul) MergeReferences ¶
MergeReferences 把给定的语言合并到引用中,如果已经存在的话则忽略
func (*Vul) MergeReferencesAll ¶
func (x *Vul) MergeReferencesAll(references References) *Vul
MergeReferencesAll 把给定的语言合并到引用中,如果已经存在的话则忽略
func (*Vul) MergeTitle ¶
MergeTitle 把给定的语言合并到title中,如果已经存在的话则忽略
func (*Vul) MergeTitleAll ¶
func (*Vul) UpdateDescription ¶
UpdateDescription 把给定的语言合并到描述中,如果已经存在的话则覆盖
func (*Vul) UpdateDescriptionAll ¶
func (*Vul) UpdateReferences ¶
UpdateReferences 把给定的语言合并到引用中,如果已经存在的话则覆盖
func (*Vul) UpdateReferencesAll ¶
func (x *Vul) UpdateReferencesAll(references References) *Vul
UpdateReferencesAll 更新引用,如果引用已经存在了则覆盖更新,否则新增,在修改引用列表的时候会尽可能的保持其原有顺序
func (*Vul) UpdateTitle ¶
UpdateTitle 把给定的语言合并到title中,如果已经存在的话则覆盖
func (*Vul) UpdateTitleAll ¶
type VulCode ¶
type VulCode struct { // 关联到的漏洞的ID,这个vul_id和code两个字段做一个联合的唯一索引 VulId string `mapstructure:"vul_id" json:"vul_id,omitempty" gorm:"column:vul_id;index:vul_codes,unique"` // 漏洞的编号 // 漏洞 + code 有一个唯一索引 // code 自己单独一个唯一索引 Code string `mapstructure:"code" json:"code,omitempty" gorm:"column:code;index:vul_codes,unique;index:codes"` // 漏洞的编号类型 CodeType CodeType `mapstructure:"code_type" json:"code_type,omitempty" gorm:"column:code_type"` // 几个创建时间更新时间啥的 CreateTime *time.Time `mapstructure:"create_time" json:"create_time,omitempty" gorm:"column:create_time"` UpdateTime *time.Time `mapstructure:"update_time" json:"update_time,omitempty" gorm:"column:update_time"` ChangeTime *time.Time `mapstructure:"change_time" json:"change_time,omitempty" gorm:"column:change_time"` }
VulCode 用于表示漏洞关联到的编号