#1: Disallow to query invalid Mojang usernames

This commit is contained in:
ErickSkrauch
2019-04-20 19:51:55 +03:00
parent b1e18d0d01
commit 96af45b2a1
2 changed files with 19 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
package queue
import (
"regexp"
"strings"
"sync"
"time"
@@ -15,6 +16,9 @@ var forever = func() bool {
return true
}
// https://help.mojang.com/customer/portal/articles/928638
var allowedUsernamesRegex = regexp.MustCompile(`^[\w_]{3,16}$`)
type JobsQueue struct {
Storage Storage
@@ -31,6 +35,14 @@ func (ctx *JobsQueue) GetTexturesForUsername(username string) chan *mojang.Signe
})
responseChan := make(chan *mojang.SignedTexturesResponse)
if !allowedUsernamesRegex.MatchString(username) {
go func() {
responseChan <- nil
close(responseChan)
}()
return responseChan
}
cachedResult := ctx.Storage.Get(username)
if cachedResult != nil {