Skip to content

Commit eaa2513

Browse files
committed
Catch a late binding forgery
Post OpenUserJS#944 OpenUserJS#1867
1 parent 589698f commit eaa2513

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

controllers/auth.js

+4-6
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,6 @@ exports.auth = function (aReq, aRes, aNext) {
213213
if (captchaToken) {
214214
aReq.session.captchaToken = captchaToken;
215215
aReq.session.captchaSuccess = aReq.hcaptcha;
216-
217-
delete aReq.body['g-captcha-response'];
218-
delete aReq.body['h-captcha-response'];
219-
delete aReq.hcaptcha;
220216
}
221217
}
222218

@@ -314,12 +310,14 @@ exports.callback = function (aReq, aRes, aNext) {
314310
var username = aReq.session.username;
315311
var newstrategy = aReq.session.newstrategy;
316312
var knownUser = aReq.session.knownUser;
317-
var captchaToken = aReq.session.captchaToken;
313+
var sessionCaptchaToken = aReq.session.captchaToken;
314+
var captchaToken = aReq.body['g-captcha-response'] ?? aReq.body['h-captcha-response'];
315+
318316
var strategyInstance = null;
319317
var doneUri = aReq.session.user ? '/user/preferences' : '/';
320318
var SITEKEY = process.env.HCAPTCHA_SITE_KEY;
321319

322-
if (SITEKEY && !knownUser && !captchaToken) {
320+
if (SITEKEY && !knownUser && captchaToken !== sessionCaptchaToken) {
323321
aRes.redirect('/login?authfail');
324322
return;
325323
}

0 commit comments

Comments
 (0)