Update captcha.go

Captcha must be deleted if the user entered a "challenge" with a different length than the captcha.
This commit is contained in:
Francois 2014-08-09 15:35:29 +02:00
parent 2773fda883
commit 58ac0d5ea4
1 changed files with 5 additions and 1 deletions

View File

@ -200,7 +200,7 @@ func (c *Captcha) Verify(id string, challenge string) (success bool) {
key := c.key(id)
if v, ok := c.store.Get(key).([]byte); ok && len(v) == len(challenge) {
if v, ok := c.store.Get(key).([]byte); ok {
chars = v
} else {
return
@ -211,6 +211,9 @@ func (c *Captcha) Verify(id string, challenge string) (success bool) {
c.store.Delete(key)
}()
if len(chars) != len(challenge) {
return
}
// verify challenge
for i, c := range chars {
if c != challenge[i]-48 {
@ -221,6 +224,7 @@ func (c *Captcha) Verify(id string, challenge string) (success bool) {
return true
}
// create a new captcha.Captcha
func NewCaptcha(urlPrefix string, store cache.Cache) *Captcha {
cpt := &Captcha{}