feat(indexers): sanitize user input (#1420)

This commit is contained in:
ze0s 2024-02-26 18:06:00 +01:00 committed by GitHub
parent f619501d0d
commit c600f41e5a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 0 deletions

View file

@ -17,6 +17,7 @@ import (
"github.com/autobrr/autobrr/internal/logger" "github.com/autobrr/autobrr/internal/logger"
"github.com/autobrr/autobrr/internal/scheduler" "github.com/autobrr/autobrr/internal/scheduler"
"github.com/autobrr/autobrr/pkg/errors" "github.com/autobrr/autobrr/pkg/errors"
"github.com/autobrr/autobrr/pkg/sanitize"
"github.com/gosimple/slug" "github.com/gosimple/slug"
"github.com/rs/zerolog" "github.com/rs/zerolog"
@ -78,6 +79,13 @@ func NewService(log logger.Logger, config *domain.Config, repo domain.IndexerRep
} }
func (s *service) Store(ctx context.Context, indexer domain.Indexer) (*domain.Indexer, error) { func (s *service) Store(ctx context.Context, indexer domain.Indexer) (*domain.Indexer, error) {
// sanitize user input
indexer.Name = sanitize.String(indexer.Name)
for key, val := range indexer.Settings {
indexer.Settings[key] = sanitize.String(val)
}
// if indexer is rss or torznab do additional cleanup for identifier // if indexer is rss or torznab do additional cleanup for identifier
if isImplFeed(indexer.Implementation) { if isImplFeed(indexer.Implementation) {
// make lowercase // make lowercase
@ -103,6 +111,13 @@ func (s *service) Store(ctx context.Context, indexer domain.Indexer) (*domain.In
} }
func (s *service) Update(ctx context.Context, indexer domain.Indexer) (*domain.Indexer, error) { func (s *service) Update(ctx context.Context, indexer domain.Indexer) (*domain.Indexer, error) {
// sanitize user input
indexer.Name = sanitize.String(indexer.Name)
for key, val := range indexer.Settings {
indexer.Settings[key] = sanitize.String(val)
}
i, err := s.repo.Update(ctx, indexer) i, err := s.repo.Update(ctx, indexer)
if err != nil { if err != nil {
s.log.Error().Err(err).Msgf("could not update indexer: %+v", indexer) s.log.Error().Err(err).Msgf("could not update indexer: %+v", indexer)

8
pkg/sanitize/sanitize.go Normal file
View file

@ -0,0 +1,8 @@
package sanitize
import "strings"
func String(str string) string {
str = strings.TrimSpace(str)
return str
}