Commit Graph

108 Commits

Author SHA1 Message Date
b593be8627 Add some reasonable limits to cookie parsing, reduce impact of possible attack 2023-01-06 19:02:20 +11:00
9c17d5b8fc update url lib, change default settings 2022-11-06 13:42:26 +11:00
d61f320ba9 Dont show negative seconds 2022-10-03 08:36:30 +11:00
c61dd4caa2 No need to div/multiply 2022-10-03 08:36:10 +11:00
fb69c46574 Floor remaining time, remove . 2022-10-02 22:15:06 +11:00
4dd6eec87e Show pow speed, and estimate remaining time 2022-10-02 22:11:38 +11:00
64e26f65b5 - Add ability to communicate with Tor control port and close circuits. Can be called from lua or as a http-request lua... call to do it based off an ACL. close #16
- Make POW checked before captcha in POST handler, since they both must be submittedin captcha mode, we don't want to send POST to /siteverify if they didnt even solve the POW

Other:
- Change (improve) split util to leave empty table entries for repeated delimiters
- Minor frontend script bugfix so error messages display properly in captcha mode
- Wrap submit button of noscript pow form to next line
2022-10-02 04:57:59 +11:00
eb1dc3e378 Slightly change/improve max used cpu threads, and make tor use all that it has 2022-10-01 15:43:14 +10:00
efe430cf3b Add check for Webassembly support, and error if unsupported
Improve errors for 400/500 and failed but check post
Remove spinner when inserting error
2022-10-01 15:36:15 +10:00
eede92d47d Allow a bit better granularity for the difficulty. Recommend an "easier" challenge in terms of memory and iterations, but higher diff.
Make failed request for captcha/bot form show a little error text.
Make CHALLENGE_INCLUDES_IP "1" = on, anything else = off instead of needing to be unset.
2022-10-01 15:33:48 +10:00
434756a7a1 If this fixes what I think it fixes, ill eat my fucking shoe 2022-09-29 21:54:58 +10:00
b43d207847 Make cookie apply to all subdomains 2022-09-28 00:41:04 +10:00
4716cf1be2 Improve & cleanup README, docker-compose, haproxy config argon2 2022-09-25 22:54:51 +10:00
84fe5037b9 Make the staggered start work properly 2022-09-25 14:34:21 +10:00
a6b6bc1510 word-break:break-all on header which can contain long domain name 2022-09-25 00:40:52 +10:00
fe972b0868 Remove unused times variable 2022-09-24 23:11:05 +10:00
a50b35b65d argon2 implementation
- memory and time params customisable as well as "difficulty", default 1 iteration, 6000KB, 3 difficulty.
- updated the noscript bash method to work with argon2
- works in webworkers or main thread, capped at 8 threads (doesn't seem to crash firefox anymore -- we could go higher)
2022-09-24 22:56:55 +10:00
ea3f8bf291 Small docker improvement for better testing/development (no more 503) 2022-09-23 00:41:33 +10:00
d019440bc0 Move POW proof checking to POST and sign a cookie there, kinda like captcha flow, so we can do a more intensive one without it happening on every request. We just check the hmac now.
Still TODO actually converting it to argon, but should be straightforward from this point.
Another advantage of making POW check use POST is a better noscript experience. We now provide a box and "submit" button, so they don't have to mess with setting a cookie.
2022-09-23 00:26:20 +10:00
521f9742c1 revert back to 2 thread max again because turns out firefox didnt get better, just tor limits to 1 thread anyway 2022-09-21 21:32:33 +10:00
614b437667 Add ability to include IPs in challenge hash generation, to lock cookies to IPs (like the pre-sig mode) 2022-09-21 21:31:48 +10:00
20a04f23c2 Change wording for public branch 2022-09-21 19:47:47 +10:00
e1c786a1d7 Add example snippet of how to acl/whitelist stats sockte 2022-09-18 19:01:38 +10:00
0af1a740ab Make captcha submission automatic and not require clicking a "submit" form button 2022-09-18 01:41:02 +10:00
3f40192d55 Update README with new env vars
Remove dataplaneapi junk
2022-09-17 19:22:27 +10:00
d115ca6f46 ref #15 2022-09-17 19:06:37 +10:00
194c5bb96c Check ssl_fc for whether to set captcha cookie as secure close #15 2022-09-17 18:48:28 +10:00
3f7e48def6 update the nojs terminal script 2022-09-17 04:38:42 +10:00
207c3af05b Patch some bugs in the updated challenge.js especially related to the fallback mode 2022-09-17 04:04:27 +10:00
598790cb4f - Fix some docker-compose issues close #14
- Move to new scheme with some hashing, sigs, and a random user key. close #13
- Change to sha256 rather than sha1 (temporary, but i guess its slightly more secure which is nice for now) ref #10
- Change POW output checked value
- Add lib for randombytes, udpate lua sha lib
- Remove outdated difficulty checks in frontend (was hardcoded 0 anyway) and since algo change is coming soon, there is no need to keep it
2022-09-17 02:45:27 +10:00
7dbc14feb3 remove my grecaptcha secrets (invalidated now thx :^) 2022-09-12 23:43:11 +10:00
0d991770cf google recaptcha v2 support 2022-09-12 23:37:21 +10:00
c9e007639e - Make the "checking your browser for robots" look more like cloudflare
- Reduce the default concurrency of the frontend script to 2 threads because any higher seems to crash firefox (and its quick enough even with 2 threads anyway)
- Remove the footerlogo from challenge and maintenance page, and update the link
2022-09-10 08:23:09 +10:00
77518cee69 maintenance mode 2022-04-26 07:30:34 +00:00
d3d4b12607 fix in some situations useragent can be nil 2022-04-26 13:07:12 +10:00
05602ced24 update readme 2022-04-25 14:33:30 +10:00
76e9cad8a8 add map for whitelisting ip/subnets. also cleanup the config a bit. 2022-04-25 01:07:57 +10:00
d5a83be478 Change last stage of the noscript command option to bash instead of sh.
Even if a lot of distros just symlink sh > bash the script needs to do some substitutions not supported in sh, so it's more correct. Who doesnt have bash these days anyway?
2022-02-20 23:14:39 +11:00
640f80bb56 for noscript users, in pow only mode (not when hcaptcha enabled), the page now includes a small encoded script that will get the correct captcha value. Slower than javascript, but good enough. 2022-02-20 01:01:40 +11:00
1bf8992371 link to repo until new site ready 2022-01-27 22:39:13 +11:00
c3a3648469 readme update,
remove ssl from haproxy since its just the docker example
2022-01-22 13:00:31 +11:00
7ea0fe7dc8 improve check for captcha map fetches by domain and domain+path.
old code was just dumb, dunno what i was thinking.
now domain+path takes priority and can be lower or hight level, not just higher level than domain only.
2022-01-19 23:15:18 +11:00
e406ac46ca Merge branch 'lua-httpclient-test' 2022-01-19 18:09:30 +11:00
d38713b4cb haproxy snapshot fixes bug, and use url biuld query to make body for hcaptcha post 2022-01-19 18:01:08 +11:00
5007106c3a space to 4 tabs 2022-01-03 01:16:46 +11:00
b63daef8e1 readme fix, improve, remove old shit cli and interaction diagram 2022-01-02 16:52:45 +11:00
52da926ed2 set ssl verify none on template servers
make trace for debug plain for no xss and add ms to timestamp
2022-01-02 01:31:21 +11:00
c2be84c4f8 body not sending, needs fix 2021-12-31 00:28:56 +11:00
9787471004 use POST for hcaptcha submission instead of get, since their docs says get is not supported even if it works 2021-12-30 23:50:25 +11:00
2fbba3c8f8 haproxy 2.5 docker 2021-12-30 17:42:24 +11:00