Human Challenge

The PerimeterX user-friendly and advanced Captcha solution

PerimeterX Human Challenge is an alternative challenge to other CAPTCHA solutions, with enhanced capabilities to detect if a user is a bot or a human. It speeds up and streamlines the user's Captcha experience, protects against Captcha solvers, and collects data related to the solvers' actions. The nature of the challenge makes it difficult to solve through API calls, automation or Captcha farms.

PerimeterX Human Challenge is a simple, no-hassle "press and hold" challenge

535535

Why Human Challenge

PerimeterX Human Challenge provides PerimeterX insights and real-time data on the behavior of Captcha solvers. This data allows us to detect non-human CAPTCHA solvers and to provide a better user experience to real humans solving the challenge.

Other CAPTCHA solutions are often considered to be “black-box” (for example, Google reCaptcha’s iframe does not allow access to any events occurring inside it). With Human Challenge we gain visibility to all the activities and events that occur on the Challenge page. Human Challenge allows us to create honeypots, involve anti-solving techniques, and other features that have the ability to differentiate between humans and bots/CAPTCHA solvers.

Read more on CAPTCHA solvers

How do we identify if a challenge is being solved automatically by CAPTCHA solvers?

End-to-end visibility with Bot Defender: using Bot Defender capabilities, Human Challenge detects automated tools, payload or token replays, including signatures collected by the ML algorithm that were classified as malicious. Human Challenge uses Bot Defender's intelligence tools to scan the darknet/deep web to identify any CAPTCHA solving script/tool/service.
Using various honeypots such as fake CAPTCHA tokens, multiple iframes and fake events.
Tracking user interaction with the UI such as mouse, touch, and keyboard events.
Identifying injection of unwanted scripts, to detect if a script attempts to make use of the native methods provided by the DOM that are applied at the CAPTCHA environment.

How do we identify if a challenge is being solved by CAPTCHA solving services?

The PerimeterX internal OSINT system is based on more than 800 different threat-intelligence databases and platforms. Our system harvests the data according to selected keywords and trends. For example, some Captcha solving services (e.g Death by Captcha), publicly release their updated scripts and our system scans these repositories. Every time the script is updated we get a notification and our team implements new detection (if needed) against that CAPTCHA solving service.
Multiple tokens are sent, of which only one is the real token.
We are able to detect and block callbacks that were made by headless browsers (e.g. selenium) from the CAPTCHA’s stack. Services such as “2captcha” are using this kind of mechanism.

Metric*

Human Challenge compared to Google reCaptcha

Abandonment rate

3-5x lower

Solve time

4-6x faster

Headless browsers solve rate

2x better

These metrics are compared against dozens of customers from different industries and millions of solved challenges in the last three months. Ask for the product brief for more details!

Deploy Human Challenge

Prerequisites

Before you install the PerimeterX Human Challenge on your site:

  • Contact PerimeterX on Slack, SFDC or at [email protected] to request the Human Challenge.
  • Make sure to let us know if you are using a custom Captcha flow (e.g using Captcha in a non-blocking page).
  • It is recommended to use the First-Party Sensor integration. You can check this in the Console under Application -> Snippet

Testing

The following should be run on your stg environment

  • Request for PerimeterX to deploy Human Challenge on your stg application.
  • Make sure to retain your user flow and desired page design.
  • Optionally, test the available localization and customization options. Refer to the Customization and Configurations section section for more details.

In order to ensure that Human Challenge was integrated correctly, it is recommended that the following test scenarios be executed on your stg environment. While the amount of test scenarios is small, there are some caveats to note in each one to ensure that it is indeed repeatable and possible to automate as well.

Test Scenarios

In each case mentioned below, the following scenarios should be tested:

Successful Attempt:

  • Create a Challenge Bypass Token(this only needs to happen once and can be reused across multiple executions).
  • To ensure the challenge is presented, add a User-Agent: HeadlessChrome header to the request.
  • Render the page which has the challenge embedded (e.g. the built-in block page, a customized block page or a challenge rendered via Advanced Blocking Response (ABR).
  • After the challenge is rendered, add an x-px-captcha-testing: header to the request with the bypass token generated in step (a).
  • Solve the challenge by clicking / tapping on it until the bar is full and then release it.
  • Observe that you can continue with the process the challenge was displayed for (e.g. login).

Failed Attempt:

  • To ensure the challenge is presented, add a User-Agent: HeadlessChrome header to the request.
  • Render the page which has the challenge embedded (e.g. the built-in block page, a customized block page or a challenge rendered via Advanced Blocking Response (ABR).
  • Solve the challenge by clicking / tapping on it until the bar is full and then release it.
  • Observe that you got another challenge.

We recommend that, at a minimum, the following setups be tested in this manner to ensure that the integration was done correctly:

  • Web - browser based.
  • Mobile - browser based.
  • Mobile SDK - iOS (if relevant).
  • Mobile SDK - Android (if relevant).

See the FAQ section below for further Q&A and Troubleshooting details.

Production

When you are satisfied with the results of your Testing, deploy Human Challenge on Production.

  • Request for PerimeterX to deploy Human Challenge on your prod application.
  • Make sure to retain your user flow and desired page design.
  • If you are using custom localization or customization, make sure that it is included in your production environment.

Compatibility

PerimeterX Human Challenge supports the following:

Web

  • Chrome ≥67
  • Safari ≥9
  • FF ≥60
  • IE ≥10
  • Edge ≥15
  • Android ≥5
  • Opera ≥55 (including mini≥16)
  • Yandex ≥16
  • UC ≥9

Mobile

  • ≥iPhone 5S
  • ≥iPad 4
  • ≥Nexus 5
  • ≥Pixel 1
  • ≥Galaxy S7
  • ≥Galaxy Note 9
  • ≥Xperia XA

On browsers that are not supported the user will get the message There seems to be a problem with your browser. Please upgrade to load PerimeterX Human Challenge

When the user is experiencing a network problem, they will receive the message There seems to be a connection issue. Please make sure you're online and then refresh the page

When the Human Challenge is solved, but there is no internet connection, the callback window._pxOnOfflineCallback occurs.

Accessibility

Human Challenge is ARIA compatible by default, and provides the following for the visually impaired user:

  • Text coded into the images
  • Proper prompting text ("press and hold")
  • Enabled keyboard access to elements on the page

Human Challenge is also available in an enhanced accessibility mode which conform with WCAG 2.1 and section 508 along with a VPAT 2.4 report with additional details. Please contact your PerimeterX CSE or SA, send us a Slack or email at [email protected] for further information.

Customization and Configuration

For further information about Human Challenge and context customizations and configurations see here.

FAQ

Who do I contact to get a detailed explanation on Human Challenge?

You can contact your PerimeterX CSE or SA, send us a Slack, or send us an email at [email protected]

How do I customize Human Challenge?

You can customize the Human Challenge and give it the same look and feel as your website. Within the Customizing_ you can customize the background color, text, font, animation, etc.

How do I localize the Human Challenge?

We offer 27 language/locale options out-of-the-box. Additionally, you can add a locale not included in the Human Challenge package. In the Customizing_, simply add the localization code to the locale object and enter the translated text to the text line of the translation object.

Does Human Challenge support accessibility?

Human Challenge is ARIA compatible by default, and provides text coded into images, proper prompting text, and keyboard access to elements on the page. Human Challenge is also available in enhanced accessibility mode. Please reach out to PerimeterX CSE or SA, send us a Slack, or send us an email at [email protected] for further assistance.

Q&A and Troubleshooting

My development and testing process does not allow me to manipulate headers, how can I test this flow?
If you are unable to use the header manipulation flow mentioned above, we recommend you use the mobile verification flow and our VID extraction tool. Keep in mind that this flow can not be automated and is only applicable for manual testing.

I waited for the bar to fill, released the press and the challenge UI is now stuck, not continuing with the process or showing an animation endlessly. What is blocking it from moving forward?
In the case of ABR, you will need to override the window._pxOnCaptchaSuccess function and handle both the successful and failed results to trigger the correct step in your code.

I waited for the bar to fill, released the press and got another challenge to solve, what am I doing wrong?
Make sure that you added the Captcha Bypass Token before solving the challenge. This will ensure that our system ignores all detections and allows the challenge to be solved.

I managed to get the integration to work via web and browser, but the mobile integration keeps showing me challenges, what could be the cause?
In the case of the mobile SDK, the correct function to override in customized pages is _pxOnMobileCaptchaSuccess, as can be seen in the documentation here. Make sure that you properly implement this function and retest.

I keep getting challenges when testing through a mobile emulator as a part of my development process, how can I bypass this?
Some of our detections block emulator based solves. To make sure these pass successfully, x-px-captcha-testing header to the request.

While using Chrome’s DevTool emulator I am forced to solve the challenge repeatedly?
Unfortunately, Chrome’s DevTool emulator does not behave 100% like a mobile device and is not recommended for testing of Human Challenge.

No matter what I do I pass the challenge, is it not working as expected?
Make sure that the User-Agent: HeadlessChrome header is a part of the request, and that the x-px-captcha-testing is not. If you solved the challenge in the last few minutes, be sure to clear your cookies and add a random string to the User-Agent header (e.g. User-Agent: HeadlessChrome-1) or wait 5-10 minutes for the challenge solve to expire.
If none of the answers above helps solve the issue you are experiencing, please contact us on our shared slack channel and our team will be happy to provide additional assistance.


Did this page help you?