1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-08 04:48:28 +01:00
phorge-phorge/src/applications/config
Austin Seipp ab923e0a75 Implement new reCAPTCHA interface
Summary:
Fixes T12195. For the past few years, Recaptcha (now part of Google) has supported
a new, "no captcha" one-click user interface. This new UI is stable, doesn't
require any typing or reading words, and can even work without JavaScript (if
the administrator enables it on the Recaptcha side).

Furthermore, the new Recaptcha has a completely trivial API that can be dealt
with in a few lines of code. Thus, the external `recaptcha` php library is now
gone.

This API is a complete replacement for the old one, and does not require any
upgrade path for users or Phabricator administrators - public and secret keys
for the "new" Recaptcha UI are the exact same as the "classic" Recaptcha. Any
old Recaptcha keys for a domain will continue to work.

Note that Google is currently testing Yet Another new Captcha API, called
"Invisible reCAPTCHA", that will not require user interaction at all. In fact,
the user will not even be aware there //is even a captcha form//, as far as I
understand. However, this new API is 1) in beta, 2) requires new Recaptcha keys
(so it cannot be a drop-in replacement), and 3) requires more drastic API
changes, as form submission buttons must instead invoke JavaScript code, rather
than a token being passed along with the form submission. This would require far
more extensive changes to the controllers. Maybe when it's several years old, it
can be considered.

Signed-off-by: Austin Seipp <aseipp@pobox.com>

Test Plan:
Created a brand-new Phabricator installation, saw the new Captcha UI
on administrator sign up. Logged out, made 5 invalid login attempts, and saw the
new Captcha UI. Reworked the conditional to invert the condition, etc to test
and make sure the API responded properly.

Reviewers: epriestley, #blessed_reviewers, chad

Reviewed By: epriestley, #blessed_reviewers

Subscribers: avivey, Korvin

Maniphest Tasks: T12195

Differential Revision: https://secure.phabricator.com/D17304
2017-02-03 20:06:29 +00:00
..
application Update SchemaQuery and the web UI to accommodate multiple master databases 2016-11-12 16:36:52 -08:00
check Change PHP 7 setup warning to complain about 7.0 only, not 7.1+ 2017-01-12 15:59:28 -08:00
constants Redesign Config Application 2016-08-29 15:49:49 -07:00
controller In the "Version Information" panel, try to include branchpoints 2016-12-23 11:42:20 -08:00
custom Make new logo and wordmark more reasonably configurable by human users 2016-08-07 12:00:21 -07:00
editor Allow bin/config to affect database configuration and migrate between local and database configuration 2014-10-08 16:15:05 -07:00
engine When we "discover" new fatal setup issues, stop serving traffic 2016-11-21 15:54:40 -08:00
exception Apply some autofix linter rules 2014-09-10 06:55:05 +10:00
issue Clean up another insufficiently-general exception 2016-11-23 10:41:19 -08:00
json Improve UI formatting of some configuration values 2015-12-05 09:58:47 -08:00
management Add a "--force" argument to "bin/config done" 2016-12-01 13:53:33 -08:00
module Split setup checks into "preflight" and "normal" checks 2016-09-06 11:57:18 -07:00
option Implement new reCAPTCHA interface 2017-02-03 20:06:29 +00:00
phid Mark PhabricatorPHIDType::getPHIDTypeApplicationClass() as abstract 2015-11-03 06:47:12 +11:00
query Make buildWhereClause() a method of AphrontCursorPagedPolicyAwareQuery 2015-04-20 10:06:09 -07:00
response Add a friendlier "in flight" error page 2016-09-07 06:59:48 -07:00
schema Prepare for InnoDB FULLTEXT support 2016-11-25 15:18:26 -08:00
storage Add "Manual Activities", to tell administrators to rebuild the search index 2016-11-30 11:23:54 -08:00
view Run all minor setup checks on all configured database hosts 2016-11-21 15:55:54 -08:00