Minor non-breaking changes to captcha
Added image/jpeg content-type header to /captcha.jpg. Made unsigned digests urlsafe (as they were intended to be).
このコミットが含まれているのは:
コミット
41ee90870d
|
@ -5,9 +5,9 @@ from quart import current_app
|
|||
from anonstream.helpers.captcha import generate_captcha_digest, generate_captcha_image
|
||||
|
||||
CONFIG = current_app.config
|
||||
CAPTCHAS = current_app.captchas
|
||||
CAPTCHA_FACTORY = current_app.captcha_factory
|
||||
CAPTCHA_SIGNER = current_app.captcha_signer
|
||||
CAPTCHAS = current_app.captchas
|
||||
|
||||
def generate_random_captcha_solution():
|
||||
return ''.join(
|
||||
|
|
|
@ -31,7 +31,7 @@ def _generate_captcha_unsigned_digest(salt, solution):
|
|||
+ solution.encode()
|
||||
)
|
||||
raw_unsigned_digest = hashlib.sha256(parts).digest()[:16] + salt
|
||||
return base64.b64encode(raw_unsigned_digest).removesuffix(b'=')
|
||||
return base64.urlsafe_b64encode(raw_unsigned_digest).removesuffix(b'=')
|
||||
|
||||
def generate_captcha_digest(signer, salt, solution):
|
||||
unsigned_digest = _generate_captcha_unsigned_digest(salt, solution)
|
||||
|
@ -44,7 +44,7 @@ def check_captcha_digest(signer, digest, answer):
|
|||
try:
|
||||
unsigned_digest = signer.unsign(
|
||||
digest,
|
||||
max_age=CONFIG['CAPTCHA_LIFETIME']
|
||||
max_age=CONFIG['CAPTCHA_LIFETIME'],
|
||||
)
|
||||
except BadTimeSignature:
|
||||
result = Answer.BAD
|
||||
|
|
|
@ -37,4 +37,4 @@ async def captcha(user):
|
|||
if image is None:
|
||||
return abort(410)
|
||||
else:
|
||||
return image
|
||||
return image, {'Content-Type': 'image/jpeg'}
|
||||
|
|
読み込み中…
新しいイシューから参照