mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 08:49:13 +00:00
feat(indexers): sanitize user input (#1420)
This commit is contained in:
parent
f619501d0d
commit
c600f41e5a
2 changed files with 23 additions and 0 deletions
|
@ -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
8
pkg/sanitize/sanitize.go
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
package sanitize
|
||||||
|
|
||||||
|
import "strings"
|
||||||
|
|
||||||
|
func String(str string) string {
|
||||||
|
str = strings.TrimSpace(str)
|
||||||
|
return str
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue