@@ -147,8 +147,13 @@ func (impl ImageScanDeployInfoRepositoryImpl) FindByTypeMetaAndTypeId(scanObject
147
147
148
148
func (impl ImageScanDeployInfoRepositoryImpl ) ScanListingWithFilter (request * securityBean.ImageScanFilter , size int , offset int , deployInfoIds []int ) ([]* ImageScanListingResponse , error ) {
149
149
var models []* ImageScanListingResponse
150
+ var err error
150
151
query := impl .scanListingQueryBuilder (request , size , offset , deployInfoIds )
151
- _ , err := impl .dbConnection .Query (& models , query , size , offset )
152
+ if len (request .Severity ) > 0 {
153
+ _ , err = impl .dbConnection .Query (& models , query , pg .In (request .Severity ), pg .In (request .Severity ))
154
+ } else {
155
+ _ , err = impl .dbConnection .Query (& models , query )
156
+ }
152
157
if err != nil {
153
158
impl .logger .Error ("err" , err )
154
159
return []* ImageScanListingResponse {}, err
@@ -177,8 +182,8 @@ func (impl ImageScanDeployInfoRepositoryImpl) scanListQueryWithoutObject(request
177
182
query = query + " AND res.cve_store_name ILIKE '%" + request .CVEName + "%'"
178
183
}
179
184
if len (request .Severity ) > 0 {
180
- severities := strings . Trim ( strings . Join ( strings . Fields ( fmt . Sprint ( request . Severity )), "," ), "[]" )
181
- query = query + fmt . Sprintf ( " AND (cs.standard_severity IN (%s ) OR (cs.severity IN (%s ) AND cs.standard_severity IS NULL))" , severities , severities )
185
+ // use pg.In to inject values here wherever calling this func in case severity exists, to avoid sql injections
186
+ query = query + " AND (cs.standard_severity IN (? ) OR (cs.severity IN (? ) AND cs.standard_severity IS NULL))"
182
187
}
183
188
if len (request .EnvironmentIds ) > 0 {
184
189
envIds := strings .Trim (strings .Join (strings .Fields (fmt .Sprint (request .EnvironmentIds )), "," ), "[]" )
@@ -239,8 +244,7 @@ func (impl ImageScanDeployInfoRepositoryImpl) scanListQueryWithObject(request *s
239
244
}
240
245
241
246
if len (request .Severity ) > 0 {
242
- severities := strings .Trim (strings .Join (strings .Fields (fmt .Sprint (request .Severity )), "," ), "[]" )
243
- query = query + fmt .Sprintf (" AND (cs.standard_severity IN (%s) OR (cs.severity IN (%s) AND cs.standard_severity IS NULL))" , severities , severities )
247
+ query = query + " AND (cs.standard_severity IN (?) OR (cs.severity IN (?) AND cs.standard_severity IS NULL))"
244
248
}
245
249
if len (request .EnvironmentIds ) > 0 {
246
250
envIds := strings .Trim (strings .Join (strings .Fields (fmt .Sprint (request .EnvironmentIds )), "," ), "[]" )
0 commit comments