gotosocial/web/template
kim d8c4d9fc5a [feature] proof of work scraper deterrence (#4043)
This adds a proof-of-work based scraper deterrence to GoToSocial's middleware stack on profile and status web pages. Heavily inspired by https://github.com/TecharoHQ/anubis, but massively stripped back for our own usecase.

Todo:
- ~~add configuration option so this is disabled by default~~
- ~~fix whatever weirdness is preventing this working with CSP (even in debug)~~
- ~~use our standard templating mechanism going through apiutil helper func~~
- ~~probably some absurdly small performance improvements to be made in pooling re-used hex encode / hash encode buffers~~ the web endpoints aren't as hot a path as API / ActivityPub, will leave as-is for now as it is already very minimal and well optimized
- ~~verify the cryptographic assumptions re: using a portion of token as challenge data~~ this isn't a serious application of cryptography, if it turns out to be a problem we'll fix it, but it definitely should not be easily possible to guess a SHA256 hash from the first 1/4 of it even if mathematically it might make it a bit easier
- ~~theme / make look nice??~~
- ~~add a spinner~~
- ~~add entry in example configuration~~
- ~~add documentation~~

Verification page originally based on https://github.com/LucienV1/powtect

Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4043
Reviewed-by: tobi <tsmethurst@noreply.codeberg.org>
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
2025-04-28 20:12:27 +00:00
..
2fa.tmpl [feature/frontend] add autocomplete + other helpful attributes to auth html pages (#4029) 2025-04-20 17:46:25 +02:00
404.tmpl [chore] Refactor HTML templates and CSS (#2480) 2023-12-27 11:23:52 +01:00
about.tmpl [chore] Fix minor typo in About template (#3502) 2024-10-31 00:26:26 +01:00
authorize.tmpl [feature] New user sign-up via web page (#2796) 2024-04-11 11:45:53 +02:00
confirm-email.tmpl [feature] Add page-specific class per template (#3814) 2025-02-20 15:09:28 +01:00
confirmed-email.tmpl [feature] Add page-specific class per template (#3814) 2025-02-20 15:09:28 +01:00
domain-blocklist.tmpl [chore] Refactor HTML templates and CSS (#2480) 2023-12-27 11:23:52 +01:00
email_confirm.tmpl [feature] Self-serve email change for users (#2957) 2024-06-06 14:43:25 +01:00
email_new_report.tmpl [feature] Email notifications for new / closed moderation reports (#1628) 2023-03-19 13:11:46 +01:00
email_new_signup.tmpl [feature] New user sign-up via web page (#2796) 2024-04-11 11:45:53 +02:00
email_report_closed.tmpl [feature] Admin accounts endpoints; approve/reject sign-ups (#2826) 2024-04-13 13:25:10 +02:00
email_reset.tmpl [feature] Admin accounts endpoints; approve/reject sign-ups (#2826) 2024-04-13 13:25:10 +02:00
email_signup_approved.tmpl [chore] fixed email template to align with the new "Log in" button + separate page (#3871) 2025-03-04 09:46:33 +01:00
email_signup_rejected.tmpl [feature] Admin accounts endpoints; approve/reject sign-ups (#2826) 2024-04-13 13:25:10 +02:00
email_test.tmpl [feature/frontend] Let admins send test email to validate SMTP config (#2934) 2024-05-27 17:03:54 +00:00
error.tmpl [chore] Refactor HTML templates and CSS (#2480) 2023-12-27 11:23:52 +01:00
finalize.tmpl [bugfix] Suggest lowercase username when creating via OIDC (#3780) 2025-02-11 09:42:35 +01:00
index.tmpl [feature] Added an extra CSS class name to the About This Instance and Register an Account sections in the root index template to allow for easier targeting with custom CSS. (#3843) 2025-02-27 10:26:55 +01:00
index_register.tmpl [feature] Added an extra CSS class name to the About This Instance and Register an Account sections in the root index template to allow for easier targeting with custom CSS. (#3843) 2025-02-27 10:26:55 +01:00
index_what_is_this.tmpl [chore/frontend] rejig server picker recommendations (#4042) 2025-04-22 17:00:46 +02:00
login-info.tmpl [feature] Add page-specific class per template (#3814) 2025-02-20 15:09:28 +01:00
login_button.tmpl [bugfix] Fix a couple accessibility issues with :focus elements (#3979) 2025-04-09 14:14:20 +02:00
maintenance.tmpl [feature] Move to code.superseriousbusiness.org 2025-04-26 15:38:43 +02:00
nollamas.tmpl [feature] proof of work scraper deterrence (#4043) 2025-04-28 20:12:27 +00:00
oob.tmpl [feature] New user sign-up via web page (#2796) 2024-04-11 11:45:53 +02:00
page.tmpl [feature] Use blurhashes in frontend, tidy up gallery view a bit (#3948) 2025-03-31 15:51:17 +02:00
page_footer.tmpl [chore/docs] add symmetry to the politics (#4081) 2025-04-28 18:20:09 +00:00
page_header.tmpl [chore] Change "federating with" to "knows of" (#4014) 2025-04-15 10:19:06 +02:00
page_ogmeta.tmpl [chore] Refactor HTML templates and CSS (#2480) 2023-12-27 11:23:52 +01:00
page_stylesheets.tmpl [bugfix] Load instance-wide custom css in page stylesheets template (#3601) 2024-12-18 10:47:17 +01:00
profile-gallery.tmpl [chore/frontend] Fix id on recent posts/media heading (#4015) 2025-04-15 10:20:29 +02:00
profile.tmpl [chore/frontend] Fix id on recent posts/media heading (#4015) 2025-04-15 10:20:29 +02:00
profile_about_user.tmpl [feature] Allow user to choose "gallery" style layout for web view of profile (#3917) 2025-03-26 15:59:39 +00:00
profile_fields.tmpl [chore] Refactor HTML templates and CSS (#2480) 2023-12-27 11:23:52 +01:00
profile_header.tmpl [chore] render avatar in photoswipe slide, remove repeated alt text (#3985) 2025-04-11 12:05:26 +02:00
settings.tmpl [chore] Rename frontend.tmpl to settings.tmpl, remove unused "lightgray" class (#2674) 2024-02-21 16:11:11 +01:00
sign-in.tmpl [feature/frontend] add autocomplete + other helpful attributes to auth html pages (#4029) 2025-04-20 17:46:25 +02:00
sign-up.tmpl [frontend] Better autocapitalize/spellcheck settings on forms (#3077) 2024-07-08 09:38:27 +02:00
signed-up.tmpl [feature] New user sign-up via web page (#2796) 2024-04-11 11:45:53 +02:00
status.tmpl [feature/frontend] Hide "engagement" stats, edits, and other info under a little drop down to unclutter status info bar (#4021) 2025-04-18 17:36:26 +02:00
status_attachment.tmpl [feature] Update attachment format, receive + send focalPoint prop + use it on the frontend (#4052) 2025-04-26 15:03:05 +02:00
status_attributes.tmpl [chore/performance] Reuse Intl.DateTimeFormat for formatting times (#4013) 2025-04-15 10:04:47 +02:00
status_header.tmpl [feature] add microformat support (#3848) 2025-03-01 13:06:08 +01:00
status_info.tmpl [feature/frontend] Hide "engagement" stats, edits, and other info under a little drop down to unclutter status info bar (#4021) 2025-04-18 17:36:26 +02:00
status_poll.tmpl [chore] little frontend tweaks (#3852) 2025-03-02 11:27:30 +01:00
tag.tmpl [chore] Refactor HTML templates and CSS (#2480) 2023-12-27 11:23:52 +01:00
thread.tmpl [feature/frontend] Hide "engagement" stats, edits, and other info under a little drop down to unclutter status info bar (#4021) 2025-04-18 17:36:26 +02:00